PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   MySQLi/PDO/(MySQL) (http://www.selfphp.de/forum/forumdisplay.php?f=22)
-   -   WHERE MATCH ... AGAINST..., zusätzliche WHERE Anweisungen definieren?! (http://www.selfphp.de/forum/showthread.php?t=12821)

8805-evergreen. 08.03.2006 09:57:31

WHERE MATCH ... AGAINST..., zusätzliche WHERE Anweisungen definieren?!
 
Halloo

Hab mal im Netz recherchiert und nichts darüber gefunden:

Ich möchte gerade eine Suchfunktion in eine Script einbauen. Dies geschieht mit WHERE MATCH ... AGAINST ... . Klappt auch wunderbar.

Nun zu meiner Frage:

Wie kann noch weitere WHERE Anweisungen definieren?

Das ganze funktioniert so:

Ein HTML Formular mit einen Suchfeld und zwei Dropdown Menüs, in denen man nur eine bestimmte Rubrik oder einen bestimmten Ort auswählen kann. Drücke ich nun senden, möchte ich natürlich nur Einträge anzeigen lassen, bei denen z.B. der Ort "8805 Richterswil" eingetragen ist, oder die unter der Rubrik "Sport" gespeichert worden sind.

Hab schon etwas gepröbelt, komm aber auf kein Ergebnis ohne Fehlermeldung.

Der Momentane PHP Code der ABfrage:

PHP-Code:

$query "SELECT * FROM webad_07 WHERE MATCH (eventTitel,beschreibung,detail_ort,veranstalter) AGAINST ('".$_POST['stichwort']."')"

Meine Versuche sahen etwa so aus:


PHP-Code:

$query "SELECT * FROM webad_07 MATCH (eventTitel,beschreibung,detail_ort,veranstalter) AGAINST ('".$_POST['stichwort']."') WHERE eventRubrik='Sport'"

Oder so...

PHP-Code:

$query "SELECT * FROM webad_07 WHERE eventRubrik='Sport' MATCH (eventTitel,beschreibung,detail_ort,veranstalter) AGAINST ('".$_POST['stichwort']."')"

Ich tüftel ja gern rum... aber irgendwann möchte ich auch ans Ziel kommen... :)

Kann mir vieleicht jemand helfen? Wäre super.... Danke!

JT 08.03.2006 18:35:21

AW: WHERE MATCH ... AGAINST..., zusätzliche WHERE Anweisungen definieren?!
 
Hi,

wenn man mit mehreren Kriterien arbeiten will, muss man diese mit And oder Or logisch verknüpfen. Den SQL-String würde ich mir aber noch weiter zusammenbauen, nachdem ich die Variablen angeschaut habe.

8805-evergreen. 09.03.2006 08:33:15

AW: WHERE MATCH ... AGAINST..., zusätzliche WHERE Anweisungen definieren?!
 
hmm... wie meinst du das genau?

hab mal folgende variante probiert:

PHP-Code:

SELECT FROM webad_07 WHERE MATCH (eventTitel,beschreibung,detail_ort,veranstalter) AND eventRubrik='Ausgang' AND ort='8000 Zürich' AGAINST ('hallo'

kein erfolg.... ich denke, das WHERE MATCH ... und AGAINST müssen gleich nacheinander kommen. Aber wie binde ich dort noch mehr kriterien ein?!

need heeelp... thanks

ninguno 09.03.2006 08:40:51

AW: WHERE MATCH ... AGAINST..., zusätzliche WHERE Anweisungen definieren?!
 
du hast schon richtig erkannt, dass match und against zusammen gehören
Code:

SELECT * FROM webad_07 WHERE MATCH (eventTitel,beschreibung,detail_ort,veranstalter) AGAINST ('hallo') AND eventRubrik='Ausgang' AND ort='8000 Zürich'

8805-evergreen. 09.03.2006 09:00:29

AW: WHERE MATCH ... AGAINST..., zusätzliche WHERE Anweisungen definieren?!
 
Hell Yeah.... das wars... ich danke vielmals!

Gruss

8805-evergreen. 10.03.2006 10:05:30

AW: WHERE MATCH ... AGAINST..., zusätzliche WHERE Anweisungen definieren?!
 
Ich bins mal wieder... :)

Hab eine weitere Frage, die ich nicht "ergoogeln" konnte...

Wie kann ich bei einer Suche die Anzahl gefundener Datensätze ausgeben?!

Hab etwas rumgepröbelt und herausgefunden, das man das Resultat eines mysql_query nicht 2x mal in einem mysql_fetch_array anwenden kann.

mysql_num_rows() gibt nur den Wert 1 zurück.

Hat mir jemand einen Tipp? Ich danke...

xabbuh 10.03.2006 21:48:06

AW: WHERE MATCH ... AGAINST..., zusätzliche WHERE Anweisungen definieren?!
 
Zitat:

Zitat von 8805-evergreen.
Hab etwas rumgepröbelt und herausgefunden, das man das Resultat eines mysql_query nicht 2x mal in einem mysql_fetch_array anwenden kann.

Das ist so nicht ganz richtig. mysql_fetch_*() kann so oft aufgerufen werden, bis der Zeiger auf das Ende der Ergebnismenge zeigst. Anschließend müsste man den Zeiger erst wieder mit mysql_data_seek() an eine andere Position setzen, um erneut mit mysql_fetch_*() arbeiten zu können.

Zitat:

Zitat von 8805
mysql_num_rows() gibt nur den Wert 1 zurück.

Dann scheint deine Abfrage genau einen Datensatz zu liefern.


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:28:55 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.