%resultaten% probleem
ik heb een probleem met een zoekfunctie. Als ik namelijk zoek op het woord fiets dan verschijnen er netjes alle resultaten, maar als ik zoek op "fiets.nl" dan verschijnt er niets terwijl www.fiets.nl wel in de tabel staat waarin gezocht word.
nu wilde ik dit oplossen door een % teken voor en achter de zoekterm te zetten, maar op de een of andere manier werkt dit niet en geeft hij dan helemaal geen resultaten meer :
zoekterm = '%fiets%' : geeft in phpmyadmin 0 resultaten
en
zoekterm = 'fiets' : geeft in phpmyadmin 2400 resultaten
dit is toch vreemd ? maar mijn weten zou het bovenste voorbeeld juist meer resultaten moeten geven.
Hij geeft overigens geen error aan maar zegt gewoonweg dat er geen resultaten zijn.
de tabel waarin hij zoekt bestaat uit 3 velden, namelijk :
omschrijving (voorbeeld: een leuke fiets
link (voorbeeld : www.fiets.nl)
occurrence (aantal van de voorkomende woorden, dus hierin staan getallen).
Het lijkt erop dat hij alleen resultaten weergeeft die exact in de tabel voorkomen
iemand enig idee wat ik hier fout doe ?
Weet je zeker dat je LIKE gebruikt in je query?
dit is de query :
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
"SELECT *,
COUNT(*) AS occurrences FROM websites p, word w, occurrence o
WHERE p.page_id = o.page_id AND
w.word_id = o.word_id AND
w.word_word = '%".$zoekwoorden[0]."%' ";
?>
"SELECT *,
COUNT(*) AS occurrences FROM websites p, word w, occurrence o
WHERE p.page_id = o.page_id AND
w.word_id = o.word_id AND
w.word_word = '%".$zoekwoorden[0]."%' ";
?>
en als ik het volgende doe word de query ineens enorm langzaam. hij vind dan wel resultaten als ik zoek op het woord "fiets", maar niet als ik zoek op het woord "fiets.nl":
Volgens mij moet je hierbij werken met JOIN's.
M-D schreef op 16.12.2006 14:57:
Volgens mij moet je hierbij werken met JOIN's.
Er wordt ook gewerkt met joins. Als het Key word JOIN niet voorkomt betekend dat niet dat er geen joins gebruikt worden. Een INNER JOIN kan namelijk ook gewoon via de WHERE, al is het meestal wel overzichtelijker om wel het JOIN keyword te gebruiken.
niek schreef op 16.12.2006 14:56:
ja dat werkt dus niet ha ha....het vreemde is dat hij zonder dat % teken wel het resultaat www.fiets.nl als ik zoek op "fiets"
maar als ik dus zoek op fiets.nl vind hij zowel met als zonder het % teken helemaal niets ...vreemd toch ?
iemand nog suggesties ?
zoek eens op fulltext search.. er staan op deze site ook tutorials over..
maar wellicht kan ik het huidige script er wel mee uitbreiden...
Het volgende werkt bij mij in ieder geval gewoon:
of
te doen.
PHP slikt het overigens wel, maar dit hoort niet.
Ahh....heb ik het toch verkeerd aangeleerd gekregen ooit. Dankjewel, ik zal er op letten voortaan.