PDA

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

crac
25-06-2002, 18:43
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

crac
26-06-2002, 15:25
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

crac
28-06-2002, 09:00
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 ...