[mySQL+PHP] Suche + Suchfeld

L4zy

Grünschnabel
Hi.

Ich bin gerade dabei eine (Volltext-)Suche für meine Seite zu programmieren und habe mir bereits den sql-String gebaut:

PHP:
$query_search = "SELECT * MATCH (titel, text) AGAINST ('%term%') AS AF FROM news WHERE MATCH (titel, text) AGAINST ('%term%') HAVING AF > 0.6 ORDER BY AF";

Abgefragt werden sollen alle Daten in den Spalten titel und text in der Tabelle news.

Jetzt fehlt mir irgendwie das nötige Verständnis, was mir sagt wie ich meine Suchvariable term mit dem Formular-Suchfeld, das auf jeder Seite existiert, verknüpfen kann.
Suchfeld:

HTML:
        <form id="suchform" name="suchform" method="post" action="show.php">
          <input class="search" type="text" name="search" id="search" />
          <input class="button" type="submit" name="button" id="button" value="Suchen" />
        </form>

Meine Ergebisseite ist, wie zu erkennen, die show.php. Durch den Befehl action="show.php" wird festgelegt, dass auf der Seite show.php die ganze Sache ablaufen soll. Aber wo genau baue ich im Formular-Suchfeld die Variable term ein?

Oder ist das alles der komplett falsche Ansatz? :confused:
 
Hi,

Aber wo genau baue ich im Formular-Suchfeld die Variable term ein?

Umgekehrt wird ein Schuh draus. Du musst die Post-Variable in deine Abfrage einbauen:

PHP:
$query_search = "SELECT * MATCH (titel, text) AGAINST ('%" . mysql_real_escape_string($_POST['search']) . "%') AS AF FROM news WHERE MATCH (titel, text) AGAINST ('%" . mysql_real_escape_string($_POST['search']) . "%') HAVING AF > 0.6 ORDER BY AF";

LG
 
Ah, ich verstehe. Das scheint zu funktionieren. Allerdings taucht jetzt 'ne unschöne Syntax-Fehlermeldung auf:

Code:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MATCH (titel, text) AGAINST ('%%') AS AF FROM news WHERE MATCH (titel, text) AGA' at line 1

Offenbar stimmt was dem neuen Code nicht... Aber warum "at line 1" ? In line 1 wird meine Datenbank-Connection abgefragt. :suspekt:
 
Zurück