Hulp bij array en exacte match zoeken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jos Verstraeten

Jos Verstraeten

04/08/2014 15:25:26
Quote Anchor link
Ik heb dus momenteel een stukje dtabase gemaakt die er kort gezegd zo uitziet:
ID ---- product ---- bproduct ----.....

Nu heb ik al volgende code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
$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!
Gewijzigd op 04/08/2014 15:42:35 door Jos Verstraeten
 
PHP hulp

PHP hulp

22/11/2024 19:02:27
 
Erwin H

Erwin H

04/08/2014 16:03:04
Quote Anchor link
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.
 
Jos Verstraeten

Jos Verstraeten

04/08/2014 16:14:12
Quote Anchor link
ah ok dan ga ik het zo doen,
bedankt erwin !
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.