Ik heb een script, werkend, maar hij zoekt op de exacte zoekterm

Ivo Sanders
Ivo Klaasen

Als ik nu zoek op Ivo, dan vind hij niets, ik moet de hele naam in typen.

$data = mysql_query("SELECT * FROM personen WHERE ".$_GET[ 'field' ]." LIKE ".$_GET[ 'find' ]."");
je hebt LIKE verkeerd gebruikt

LIKE '%TERM%' dus in jou geval zou:

$data = mysql_query("
SELECT * FROM personen
WHERE `".$_GET[ 'field' ]."` LIKE '".$_GET[ 'find' ]."'"); moeten werken...
maar je moet wel rekening houden, dat hij nu alles gaat zoeken dat begint met find en ook eindigt, dus eigenlijk gewoon = dus moet je een % toevoegen...

% zorgt ervoor dat alles ervoor en na kan komen... dus stel nu je wilt iets dat begint met TERM (maar dat ook TERM als woord voorkomt)

=> LIKE 'TERM %'

zonder TERM als woord
=> LIKE 'TERM%'

term mag overal komen
=> LIKE '%TERM%'

etc etc
@Caius

Nou vergeet je in jou voorbeeld ook de % tekens nog:

$data = mysql_query("
SELECT * FROM personen
WHERE `".$_GET[ 'field' ]."` LIKE '%".$_GET[ 'find' ]."%'");
GET direct in de query is vragen om sql-injection.

Reageren