Webstatt.org - Community seit 2006 - 2012 (2024?)

Suchfunktion mit Fulltext

user-344
05.10.2006 20: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'zwinkern"zwinkern;


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

gruss
web4

Avatar user-253
05.10.2006 20: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

user-344
06.10.2006 10:56

ok dann mach ichs mit WHERE und LIKE... aber ausser, dass Fulltext performancestäker ist, sehe ich keine besonderen vorteile bei der Fulltext user-129ü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

Avatar user-287
07.10.2006 09: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.

Avatar user-317
07.10.2006 10:52

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

user-344
07.10.2006 15:23

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