Archiv verlassen und diese Seite im Standarddesign anzeigen : Suchfunktion PHP -> SQL
deathcon
25-06-2002, 11:35
Hallo,
meine Frage bezieht sich auf PHP -> SQL (PgSQL)
Wie erstelle ich eine einfache Suchfunktion, bei der mehrer (auch vertauschte Woerter) gefunden werden koennen ?
Ich habs bereits mit
"SELECT foo FROM bar WHERE $variable ~* '$search'"
laufen, jedoch koennen so nur komplette satz-teile und aneinanderfolgende Woerter gefunden werden.
Vielen dank im vorraus :)
deathcon
LIKE ist hier das zauberwort (mit wildcards-> %) ... da ich es aber noch nie benutzt habe wuerde ich dir raten, im inet danach zu suchen.
Martin Ament
25-06-2002, 18:55
select foo from bar where your_field like '%suche%';
bei mehreren wörtern dieses halt dann mit and oder or verknüpfen.
geht meines wissens nach aber nur mit charakterfeldern.
martin
bei mysql gibt es noch eine weitere, weitaus maechtigere funktion:
REGEX
aber auch hier kenne ich mich nicht aus ... ;)
deathcon
27-06-2002, 06:52
Im moment läuft die Suche ueber ~* und funktioniert mit einem Begriff, doch wenn ich dann mehrere Begriffe suche find ich dann nichts mehr. Mit der und (oder)-Verknüpfung gibts nur ein kleines Problem, wie soll ich die Such-Begriffe einzeln erhalten, wenn ich nicht für jeden ein einzelnes Textfeld einplane.
MfG
Original geschrieben von deathcon
wie soll ich die Such-Begriffe einzeln erhalten, wenn ich nicht für jeden ein einzelnes Textfeld einplane.
wenn ich dich richtig verstanden habe, so hast du ala google ein einziges formularfeld, wo man mehrere begriffe eingeben kann, und du moechtest nach all diesen woertern suchen koennen. stimmt das so?
wenn dies so ist, musst den string vor der query in einzelne strings aufteilen (mittels explode und einem delimeter[" "] zb). danach bildest du den query string mit einer for-schlaufe. so entsteht ein query der dynamisch ist, und je nach anzahl eingegebener woerter laenger oder kuerzer wird ...
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.