Willkommen in der Webstatt
User-1 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
xyz-234

netcup.de Warum gibt es hier Werbung?
User-2 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

User-1 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 xyz-19ü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
xyz-234

User-3 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.

User-4 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

User-1 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