|------------------------------------------------------------------------------|
|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 tabel WHERE artiest LIKE '%piter%' OR title LIKE '%piter%' OR genre LIKE '%piter%'



SELECT ..... FROM ...... WHERE ...... LIKE '%zoekopdracht%'

$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
Beste,

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.
$HTTP_POST_VARS[zoekterm] is erg antiek en heeft niet een correcte syntax.
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']) . "%'
Bedankt voor jullie insteek.

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. ;-)

$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']) . "%'";


:)
Okee. ;)
Je zou niet de eerste zijn die dat dan alleen op de eerste LIKE toepast. Vandaar dat ik het toch maar even meld.

Reageren