Ik heb dus momenteel een stukje dtabase gemaakt die er kort gezegd zo uitziet:
ID ---- product ---- bproduct ----.....

Nu heb ik al volgende code:

$result = mysql_query("SELECT * FROM producten WHERE bproduct LIKE '%$postproduct%'");
while ($row = mysql_fetch_assoc($result)) {
$data[] = $row['product'] . explode(" ", $row['bproduct']);
}
foreach ($data as $word) {
    $lev = levenshtein($word, $postproduct);
    if ($lev == 0) {
        $closest = $begripd;
        $shortest = 0;
        break;
    }
}


Wat de bedoeling is van het script:
Iemand voert een woord in dat mogelijk verkeerd geschreven is om het makkelijk te houden: appel -> apel
in bproduct staan alle mogelijke schrijffouten die worden goedgekeurd dit kunnen er meer zijn vandaar dat het in een array wordt opgeslagen (met explode).
Nu post de gebruiker dus een misschien fout gespeld woord.
Nu is het de bedoeling dat wanneer het woord niet in de database staat als product er gekeken wordt naar bproduct of het daar mogelijk ergens staat (LIKE % %) en als er een exacte match wordt gevonden zou het het juiste product moeten echoen.

Dus ik geef een voorbeeldje:
ik voer als gebruiker apel in
in de database staat het volgende:
ID ---- product ---- bproduct ----.....
15 appel apel ppel appe

Dan zou het script als output moeten geven: appel
want in bproduct staat exact hetzelfde woord als apel

Alvast bedankt voor de hulp ik hoop dat ik al wat in de goede buurt zit maar durf het niet te zeggen aangezien ik een beetje aan het knoeien ben met die arrays ...

ik heb het zelf opgelost gekregen ik ga het anders doen LIKE '%$postproduct%'" heb ik vervangen naar LIKE '%' ' $postproduct' '%'" zo krijg ik precies wat ik wou en zonder veel moeite. Sorry voor hen die het al probeerden op te lossen, maar toch bedankt!
Nee.... nee.... neeeeee.

Geen arrays opslaan in een database. Dan ben je direct alle voordelen van een database kwijt. Maak een aparte tabel voor al die verkeerde woorden en link die aan de producten via het id. 1 woord per record, zodat je gewoon alle records kan vinden die aan dat woord voldoen en vervolgens join je de product tabel eraan.
ah ok dan ga ik het zo doen,
bedankt erwin !

Reageren