Vinzenz Mai: Bitte um Hilfe wegen Suche

Beitrag lesen

Hallo Sabine

Ich möchte eine Volltextsuche machen in einer mysql -Datenbank. Dafür habe ich beispielweise folgendes geschrieben

Schön der Reihe nach:
Du hast also Deiner Tabelle newstab einen Volltextindex für die Spalte newsinhalt hinzugefügt?

Wenn ja, prima.
Wenn nein, dann musst Du dies noch tun. Dazu kannst Du ALTER TABLE verwenden.

$sql="SELECT newsid FROM $dbtabelle WHERE MATCH (newsinhalt) AGAINST ('Schule')";
echo $sql;
$satz = mysql_query($sql) or mysql_error();

Hab' ich Dir diese Schreibweise empfohlen. Wenn ja, dann sollte ich mich in die Ecke stellen und schämen :-(

Was weist Du der Variablen $satz zu?

Wenn die query erfolgreich ist, dann die zurückgelieferte Ressource, da der Zuweisungsoperator = einen höheren Rang hat als der or-Operator, siehe auch PHP-Handbuch, Operator-Rangfolge.

Wenn schon, dann ein ganz klein wenig besser:

$satz = mysql_query($sql) or die(mysql_error());

Noch besser

$satz = mysql_query($sql);
    if (!$satz) {
        // Gebe die SQL-Anweisung und die MySQL-Fehlermeldung aus
        // Beende das Skript
        die("SQL-Anweisung: $sql<br>\nMySQL-Fehlermeldung: " .
                 mysql_error() . "<br>\n");
    }
    while ($row = mysql_fetch_array($satz)) {
        // ...

Das Skript abzubrechen ist für den Produktiveinsatz (vorsichtig ausgedrückt) unschön, aber für den ersten Ansatz sollte es reichen.

Was Du tun kannst, ist Deine Abfrage direkt an MySQL zu reichen. Dazu kannst Du entweder den Kommandozeilenclient verwenden oder phpMyAdmin, falls das zur Verfügung steht. Kannst Du das nur auf dem Webserver austesten, ist das natürlich ungünstig. Für solche Zwecke ist eine Testumgebung zu Hause sehr praktisch.

Also, es soll nach Schule gesucht werden.

Ja schon klar.

Freundliche Grüße

Vinzenz