Maranello-550
23-06-2003, 21:48
Hi Leute,
Ich habe eine herkömmliche Suche aus einer Datenbank, also ...WHERE spalte LIKE '%Suchbegriff%' ...
Wie kann ich aber bestimmen, die oft der Suchbegriff in einem einzigen Datensatz vorkommt?
Wäre sehr nüztlich zu wissen, vorallem, wenn man wirklich eine gute genaue Suchfunktion haben will. :)
ist imho nicht möglich. Ein Datensatz wird ja zum SUchergebnis hinzugefügt, sobald der LIKE-Teil das erste mal in der Zeile gefunden wird. Also wird die Zeile gar net weiter auf ein eventuelles zweites oder drittes Vorkommen des Suchkriteriums durchsucht.
Das einzige was mir dazu jetzt einfällt, wäre das Suchergebnis in ein Array zu packen, und dieses Array dann komplett zu durchsuchen.
Maranello-550
24-06-2003, 10:47
Schade, habe das schon befürchtet :(
Das mit dem ins Array laden könnte vielleicht funktionieren, aber für eine schnelle Suchfunktion wäre das eigentlich ungeeignet.
was wäre daran ungeeignet?
arbeiten mit arrays ist sowas von schnell ...., da ist licht wirklich ein sch***** gegen.
http://www.php-resource.de/forum/showthread.php?s=&threadid=21610
RobertTheHero
24-06-2003, 12:40
Dein Problem kann ich zwar nicht lösen, aber wenn du die anzahl der matches in einem Ergebnis brauchst, um ne suche nach relevanz zu erreichen, warum benutzt du nicht mysql_fulltext (http://www.mysql.de/doc/de/Fulltext_Search.html),da werden die Ergebnisse nach Relevanz sortiert ?
rth