Aangezien ik een nieuw lid ben ga ik onmiddellijk bekennen dat ik zeer weinig kaas heb gegeten van php. Ik programmeer reeds geruime tijd maar stort me nu pas op webprogrammatie.
In mijn eerste project, de website van mijn werkgever, heb ik een probleem met de zoekfunctie. De site is gebaseerd op php en mysql. Om een bepaalt woord te zoeken in onze cataloog gebruik ik SELECT MATCH AGAINST. Dit leek goed te werken tot nader inzien. Ik ben kortelings erachter gekomen dat heel wat resultaten ontbreken.
Je kan zelfs eens zoeken op onze site om het probleem uit te lokken. Onze site staat nu live op www.w-markt.be. Als je links op zoeken klikt kom je in de zoekfunctie terecht waar de problemen optreden. Als je bijvoorbeeld het woord "spa" intikt krijg je alle resultaten te zien waar deze 3 letters in voorkomen (gesorteerd per score). Het gekke is dat hij geen enkel item laat zien dat over het merk Spa gaat! (deze items vind je wel terug in de gepaste subcategorie: http://www.w-markt.be/nl/productlist/cat/86)
Kan iemand me hier op de juiste weg helpen?
De sqlstring die ik gebruik voor deze zoekopdracht is:
$sql = "SELECT ProductId, Artikel, KorteOmschrijving, Merk, Type, Prijs, Status, Foto1, online,
MATCH(Artikel, KorteOmschrijving, Merk, Type)
AGAINST ('$searchstring' IN BOOLEAN MODE) AS score FROM TABEL
WHERE MATCH(Artikel, KorteOmschrijving, Merk, Type)
AGAINST ('$searchstring' IN BOOLEAN MODE) AND Online = 1 ORDER BY score DESC";
<?php
$sql = "SELECT ProductId, Artikel, KorteOmschrijving, Merk, Type, Prijs, Status, Foto1, online,
MATCH(Artikel, KorteOmschrijving, Merk, Type)
AGAINST ('$searchstring' IN BOOLEAN MODE) AS score FROM TABEL
WHERE MATCH(Artikel, KorteOmschrijving, Merk, Type)
AGAINST ('$searchstring' IN BOOLEAN MODE) AND Online = 1 ORDER BY score DESC";
?>
bedankt voor de reacties. Smoos had het inderdaad bij het rechte eind. De miminum lengte van een zoekstring is 4 karakters bij een standaard mysql installatie. Ik heb de hosting maatschappij gevraagd om dit te wijzigen naar 3. Daarna een repair van de tabel uitgevoerd en het probleem was opgelost!