Wildcard voor zoekstring

Status
Niet open voor verdere reacties.

Hoefplan26

Gebruiker
Lid geworden
5 aug 2009
Berichten
38
Ik heb een php formule gevonden die perfect werkt d.m.v. een wildcard achter de zoekstring, zodoende vind hij alle aanvullende woorden achter de zoekopdracht.
Nu wil ik deze wildcard ook voor de zoekstring hebben zodat ik betere treffers kan krijgen.
M.A.W. is het mogelijk om in deze formule de wilcard zowel voor als achter de zoekstring te hebben?

Hier de formule:

PHP:
<?php
$searchstring= "$_GET[zoekveld] "; 
// wildcard achter de zoekstring
$searchstring=str_replace(" ", '* ', $searchstring);
?>
 
Laatst bewerkt door een moderator:
Je kunt toch LIKE gebruiken?

Bijvoorbeeld:

[SQL]
SELECT veld FROM tabel WHERE veld LIKE 'g%'
[/SQL]

Als je deze dataset hebt:

[table="width: 500, class: dotted"][tr][td]ID[/td][td]veld[/td][/tr]
[tr][td]1[/td][td]geel[/td][/tr]
[tr][td]2[/td][td]blauw[/td][/tr]
[tr][td]3[/td][td]groen[/td][/tr]
[tr][td]4[/td][td]bruin[/td][/tr][/table]

Zal deze query het eerste en derde record pakken.

Neem je nu deze query:

[SQL]
SELECT veld FROM tabel WHERE veld LIKE '%b'
[/SQL]

Daar krijg je dus het tweede en vierde record.

Neem je nou:

[SQL]
SELECT veld FROM tabel WHERE veld LIKE '%e%'
[/SQL]

Dan krijg je de eerste en derde weer.


In jouw code zal dat dus zoiets moeten worden:

PHP:
$sKeywords = '%' . str_replace ( ' ', '%', trim ( $_GET[ 'zoekveld' ] ) ) . '%';

$sQuery = "SELECT id FROM tabel WHERE veld LIKE '" . $sKeywords . '"';

(let ook op de quotes om zoekveld)

Op die eerste regel beginnen we met een wildcard, vervolgens halen we spaties aan het begin en einde van de zoektermen weg, vervangen we de spaties door wildcards en eindigen we ook met een wildcard.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan