Fehler gesucht im Suchscript

Gerhard mit d

Grünschnabel
Hi,

ich habe mir hier aus dem Forum im Tutorial Breich mal dieses Script geholt und ein wenig abgeändert:

PHP:
if ($sterm==""){
echo "Kein Suchbegriff eingegeben!";
mysql_close($verbindung);
}else{

$eingabe_array = explode(" ",$sterm);

    $query = "SELECT * FROM bf1942 WHERE "; //anfang der abfrage 
    for($i=0; $i<count($eingabe_array); $i++){ 
        $query .= "(author LIKE %".$eingabe_array[$i]."% OR modname LIKE %".$eingabe_array[$i]."% OR descr LIKE %".$eingabe_array[$i]."%)"; 
            //ob der $i-te begriff in einer der drei spalten enthalten ist (mit oder verknüpft) 
        if($i<count($eingabe_array)-1){ 
            $query .= ' AND '; 
        } 
        //verknüpfung der einzelnen worte mit und 
    }
	
    $result = mysql_query($query); //anfrage an die datenbank 
    $num_news = mysql_num_rows($result); //anzahl der zurückgegebenen datensätze 
    for($i=0; $i<$num_news; $i++){ 
        $id = mysql_result($result,$i,"id"); //abfrage der news_id von der datenbank 
        $modname = mysql_result($result,$i,"modname"); //abfrage der ueberschift 
        $descr = mysql_result($result,$i,"descr"); //abfrage der news 
        $first = array_slice(explode(" ", $descr), 0, 40); //explode teilt den string wieder an der ' ' und array_slice erstellt einen neuen array mit den ersten 40 elementen = worten der news 
        $kurze_news = join(" ", $first) . "...&nbsp;"; //join verbindet die elemente des arrays wieder zu einem string. am ende werden noch drei punkte angehängt... 
        echo "<a href=\"index.php?main=mod&id=".$id."\">".$modname."</a><br>"; //links auf die seite show_news.php 
        echo $kurze_news.'<br><br>'; //der 40 worte lange anfang des newstextes 
    }

mysql_close($verbindung);
}
$sterm = Suchbegriff

Aber leider funktioniert es nicht richtig. Ich bekomme immer diesen Fehler zurück:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /xxx/search.php on line 27

Da ich auch nicht so viel Ahnung von php habe, fällt es mir nicht leicht hier einen Fehler zu entdecken. Darum wäre ich sehr dankbar wenn ihr mir helfen könntet.

Gruß

Gerhard
 
Zuletzt bearbeitet:
Dein Query sieht ziemlich verwustet aus.

1) [...] WHERE ( author LIKE [...] <- die Klammerung da macht keinen Sinn und gehört weg. Stattdessen, alle Spalten und Tabellennamen in Backticks setzen, also z.B. `author`.

2) [...] LIKE %".$eingabe_array[$i]."% [...] <- Da fehlen die Singlequotes. Muss heissen
Code:
[...] LIKE '%".$eingabe._array[$i]."%' [...]
 
Zurück