Gehele Database doorzoeken
|ID | Cd-Nummer | Tracknummer | artiest | titel | genre | cd-titel |
-----------------------------------------------------------------------------------|
| 1 | 16 | 1 | PITER WILKENS | DYKSKIEP | Frysk | Fryske Musyk |
-------------------------------------------------------------------------------|
| 2 | 16 | 2 | PITER WILKENS |Beppe | Frysk | Fryske Musyk |
--------------------------------------------------------------------------------
Zo ziet mijn database er uit.
Nou wil ik mijn hele database gaan doorzoeken op het woord Piter. Maar de hele database bevat: 11,015 rijen (dus nummers)
Dus ik wil graag via een code dat de zoekopdracht de artiest + titel + genre gaat na kijken als daar ook piter in staat.
Nou heb ik al wat dingen geprobeert, maar dan kan ik alleen op artiest zoeken of op titel, en ik moet de exacte naam overnemen.
Kan dit ook anders?
SELECT ..... FROM ...... WHERE ...... LIKE '%zoekopdracht%'
Code (php)
1
$sql = "SELECT * FROM collectie WHERE artiest LIKE '%$HTTP_POST_VARS[zoekterm]%' OR titel LIKE '%$HTTP_POST_VARS[zoekterm]%' OR genre LIKE '%$HTTP_POST_VARS[zoekterm]%'";
Met dit is het gelukt:)
Bedankt
Jouw code is erg onveilig...
1) Gebruik $_POST
2) Haal je variabelen buiten de quotes
3) Beveilig je input, ik kan nu je db leeggooien.
Gewijzigd op 01/01/1970 01:00:00 door Arjan Kapteijn
Verder is het nooit verstandig om input van een gebruiker direct in een query te stoppen.
Gebruik in plaats van dit
LIKE '%$HTTP_POST_VARS[zoekterm]%'
dit:
LIKE '%" . mysql_real_escape_string($_POST['zoekterm']) . "%'
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
Ik had deze code gevonden op internet en beetje bewerkt.
Ik heb het stukje van SanThe er nu in:)
Bedankt!
Durk Pelsma schreef op 18.02.2009 13:16:
Ik heb het stukje van SanThe er nu in:)
Uiteraard wél bij alle LIKE's neem ik aan. ;-)
Code (php)
1
$sql = "SELECT * FROM collectie WHERE artiest LIKE '%" . mysql_real_escape_string($_POST['zoekterm']) . "%' OR titel LIKE '%" . mysql_real_escape_string($_POST['zoekterm']) . "%' OR genre LIKE '%" . mysql_real_escape_string($_POST['zoekterm']) . "%'";
:)
Je zou niet de eerste zijn die dat dan alleen op de eerste LIKE toepast. Vandaar dat ik het toch maar even meld.