login  Naam:   Wachtwoord: 
Registreer je!
 Forum

SELECT Match against probleem (Opgelost)

Offline crash1980 - 12/07/2007 18:52 (laatste wijziging 12/07/2007 22:40)
Avatar van crash1980Nieuw lid Hallo iedereen,

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:

  1. $sql = "SELECT ProductId, Artikel, KorteOmschrijving, Merk, Type, Prijs, Status, Foto1, online,
  2. MATCH(Artikel, KorteOmschrijving, Merk, Type)
  3. AGAINST ('$searchstring' IN BOOLEAN MODE) AS score FROM TABEL
  4. WHERE MATCH(Artikel, KorteOmschrijving, Merk, Type)
  5. AGAINST ('$searchstring' IN BOOLEAN MODE) AND Online = 1 ORDER BY score DESC";


Alle hulp is welkom!

Alvast bedankt.

Crash

5 antwoorden

Gesponsorde links
Offline JBke - 12/07/2007 19:34
Avatar van JBke PHP gevorderde je code tussen code-tags aub, lees de regels als je een nieuw lid bent.

Plaats wat meer code op www.plaatscode.be

code tags zijn [code ] en [/code ] maar zonder de spaties.

  1. <?php
  2. $sql = "SELECT ProductId, Artikel, KorteOmschrijving, Merk, Type, Prijs, Status, Foto1, online,
  3. MATCH(Artikel, KorteOmschrijving, Merk, Type)
  4. AGAINST ('$searchstring' IN BOOLEAN MODE) AS score FROM TABEL
  5. WHERE MATCH(Artikel, KorteOmschrijving, Merk, Type)
  6. AGAINST ('$searchstring' IN BOOLEAN MODE) AND Online = 1 ORDER BY score DESC";
  7. ?>
Offline crash1980 - 13/07/2007 10:13
Avatar van crash1980 Nieuw lid Welke code heb je nog meer nodig?
Offline smoos - 13/07/2007 10:18
Avatar van smoos PHP gevorderde Volgens mij vind hij het woord "spa" te kort. Heb je al gekeken naar de documentatie?
Offline riekele - 13/07/2007 10:55
Avatar van riekele PHP beginner voor fulltext search moet je zoals smoos ook al aangaf geloof ik minimaal 4 tekens opgeven als searchstring
Offline crash1980 - 13/07/2007 14:20
Avatar van crash1980 Nieuw lid 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!

gr.
Crash
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.189s