MySQL LIKE

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jurrien P

Jurrien P

22/01/2012 17:46:03
Quote Anchor link
Hallo,

Ik heb dus een zoeksysteem, het werkt bijna zoals ik het wil. Als ik in mijn database dit heb:
______________
Naam

Test
Test1
Test2
Test3
Lalal
_______________

En ik zoek op: Test, dan krijg ik alleen maar 'Test', en niet Test1, Test2, Test3 .. Ik heb gezien / gelezen dat ik de % moest aanpassen, maar ik heb ze allemaal geprobeerd zonder enige effect. Hopelijk is mijn vraag duidelijk.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
                    <?php
                    if($_SERVER['REQUEST_METHOD'] == 'POST')
                    {

                        $zoekterm = mysql_real_escape_string(addslashes(trim($_POST['zoekterm'])));
                        
                        $sql = "SELECT * FROM PlayerInfo WHERE user LIKE '$zoekterm%'";
                        $result = mysql_query($sql);
                        $row = mysql_fetch_array( $result );
                        {
?>

                        <table id="table1" class="gtable sortable">
                            <thead>
                                <th class="first" width="5">
                                    <a href="http://www.dawn-tdm.com/UCP/psummary.php?sort=1">#</a>
                                </th>
                                <th width="700">
                                    Name
                                </th>
                                <th width="250">
                                    <a href="http://www.dawn-tdm.com/UCP/psummary.php?sort=3">Score</a>
                                </th>
                                <th width="99">
                                    <a href="http://www.dawn-tdm.com/UCP/psummary.php?sort=2">Cash</a>
                                </th>
                                <th width="5">
                                    <a href="http://www.dawn-tdm.com/UCP/psummary.php?sort=4">Wins</a>
                                </th>
                                <th class="last" width="5">
                                    <a href="http://www.dawn-tdm.com/UCP/psummary.php?sort=5">Muted</a>
                                </th>
                            </thead> <?php
                            
                            echo'<tr class="bg2">';
                            echo'<td class="first">';
                            echo $row['ID'];
                            echo'</td>';
                            echo'<td title="">';
                            echo "<a href=\"http://www.Dawn-tdm.com/UCP/profile.php?id=$row[ID]\">$row[user]</a> ";
                            echo'<td>';
                            echo $row['Score'];
                            echo'<td title="">';
                            echo "$"; echo $row['Cash'];
                            echo'<td title="">';
                            echo $row['Wins'];
                            echo'<td class="last">';
                            if ($row['Muted'] == "0")
                            {

                                echo'No';
                            }

                            else if ($row['Muted'] == "1")
                            {

                                ?>
<b><?php echo'Yes'; ?></b><?php
                            }
                            echo'</td>';
                            echo'</tr>';
                            echo'</table>';
                        }
                    }
Gewijzigd op 22/01/2012 17:46:40 door Jurrien P
 
PHP hulp

PHP hulp

06/01/2025 05:12:16
 
Noppes Homeland

Noppes Homeland

22/01/2012 17:49:41
Quote Anchor link
Waarom post je een geheel script als het alleen maar draait om het sql statement en dan ook nog een specifiek over LIKE.

Verdiep je er eens in, wat de mogelijkheden zijn:
http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html
 
- SanThe -

- SanThe -

22/01/2012 17:52:08
Quote Anchor link
Haal $vars buiten de quotes.
Bouw foutafhandeling in.

Zo te zien zou het moeten werken.
 
Jurrien P

Jurrien P

22/01/2012 17:54:44
Quote Anchor link
Noppes Homeland op 22/01/2012 17:49:41:
Waarom post je een geheel script als het alleen maar draait om het sql statement en dan ook nog een specifiek over LIKE.

Verdiep je er eens in, wat de mogelijkheden zijn:
http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html


Ik weet niet of de fout in the query zit of ergens anders, wat ik denk dat de query gewoon juist is.
 
Obelix Idefix

Obelix Idefix

22/01/2012 18:39:38
Quote Anchor link
$zoekterm = mysql_real_escape_string(addslashes(trim($_POST['zoekterm']))) is wel een heel bijzondere....

Debuggen: wat krijg je als je de query echoot?
Als je die kopieert en rechtstreeks uitvoert op je database (via phpadmin of gelijkwaardig), gaat het dan goed?
En, zoals SanThe ook aangeeft, bouw foutafhandeling in.
 
Jurrien P

Jurrien P

22/01/2012 19:47:51
Quote Anchor link
Als ik de query echo: SELECT * FROM PlayerInfo WHERE user LIKE '%test%', niks mis mee toch?
 
Erwin H

Erwin H

22/01/2012 19:51:30
Quote Anchor link
Probleem zit ook helemaal niet in je query, maar in deze regel:

$row = mysql_fetch_array( $result );

Je loopt niet door alle resultaten heen, maar alleen maar door de eerste. Het maakt dus helemaal niet uit hoeveel resultaten je uit je query krijgt, je zal er op deze manier altijd maar een zien.
 
Jurrien P

Jurrien P

22/01/2012 20:42:56
Quote Anchor link
Als ik er een while aanknoop dan laat hij helemaal niets meer zien.
 
Erwin H

Erwin H

22/01/2012 20:47:30
Quote Anchor link
Je hebt zeker de ; niet weggehaald aan het eind.....
 
Jurrien P

Jurrien P

22/01/2012 20:48:31
Quote Anchor link
Sorry, niet helemaal slim van mij. Bedankt Erwin.
 
Erwin H

Erwin H

22/01/2012 20:50:27
Quote Anchor link
En overigens gaat het dan waarschijnlijk ook nog fout, want dan bouw je bij elk record de hele tabel opnieuw op. Daar zal je dus ook nog het een en ander moeten aanpassen.
 
Jurrien P

Jurrien P

22/01/2012 21:13:26
Quote Anchor link
Ja, een stuk van de tabel moet boven de while komen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.