Willkommen in der Webstatt Zum Webstatt Blog und Stories
web4 am 05.10.06 22:23

hallo zusammen,

ich plag mich mit einer suchfunktion ohne LIKE rum...
mysql gibt beim folgenden query keinen fehler aus - trotzdem funktioniert er nicht... warum?

$query_suche = mysql_query("SELECT * FROM `members` WHERE MATCH (`traumort`, `hobbies`, `interessen`, `beruf`, `tag_deutsch`, `tag_english`, `plz`) AGAINST ('$traumort,$hobbies,$interessen,$beruf,$tags,$plz')");

ich möchte die verschiedenen spalten mit den begriffen durchsuchen... oder geht das nicht?

gruss
web4

netcup.de Warum gibt es hier Werbung?
Michael Michael am 05.10.06 22:58

Nein das geht so nicht. Du prüft ob der Suchbegriff $traumort,$hobbies,$interessen,$beruf,$tags,$plz in den einzelnen Feldern vorkommt.
Für deinen Zweck für ich ganz einfach WHERE traumort='$traumort' OR hobbies='$hobbies' OR ... Wenn keine exakten Treffer gesucht werden musst du doch LIKE benutzen

web4 am 06.10.06 12:56

ok dann mach ichs mit WHERE und LIKE... aber ausser, dass Fulltext performancestäker ist, sehe ich keine besonderen vorteile bei der Fulltext Benützung... oder?

wobei hätte ich gleich noch eine frage: wenn ich jetzt, eine tabelle mit dem lebensjahr habe, und man soll ein "Lebensjahr-pool" auswählen... also visuell gesagt: man kann beim formularfeld "10-25 Jahre" "26-40" Jahre usw auswählen ... wie kann man das in die suchfunktion einbauen?

theoretisch müsste man ja eine for schleife machen, welche den query immer mit

"lebensjahr = 'X' OR
lebensjahr = 'X2' OR ..."

ist klar was ich meine? wie könnte man das bewerkstelligen?
danke für die hilfe
web4

Rebel4s Rebel4s am 07.10.06 11:49

Ich würd das mit time lösen und nicht mit einer Jahreszahl.

Außer du machst für die Jahreszahl eine extra Spalte und guckst dann welche Jahreszahlen für diesen Alterpool in Frage kommt und suchst dann where alter > x1 and alter < x2. So ungefähr.

Sven Sven am 07.10.06 12:52

Dafür gibt es BETWEEN in SQL : http://dev.mysql.com/doc/refman/5.1/de/comparison-operators.html

web4 am 07.10.06 17:23

danke!! ich habs schlussendlich mit between gelöst - ganz simple und verständlich!

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt