Suche mit MySQL / PHP

cyrix10
hi,

habn kleines Problemchen mit dem Suchscript hier,

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
<?php error_reporting(E_ALL);
if ($action == "search")
{
$eingabe_array = explode(' ',$wo);
include('../../inc/config.inc.php');
		mysql_connect($sqlhost,$sqluser,$sqlpass) OR DIE( "Couldn't connect to MySQL server!");
      	mysql_select_db($database);
		$query = 'select * from $tab_x where ';  
    	for($i=0; $i<count($eingabe_array); $i++){ 
        $query .= "(beschreibung like '%"$eingabe_array[$i]"%' or name like '%".$eingabe_array[$i]."%')"; 
             
        if($i<count($eingabe_array)-1){ 
            $query .= ' and '; 
        } 
         
    }
	
	$result = mysql_query($query); 
    $num_news = mysql_num_rows($result);  
    for($i=0; $i<$num_news; $i++){ 
        $x_id = mysql_result($result,$i,'x_id'); 
        $name = mysql_result($result,$i,'name');  
        $beschreibung = mysql_result($result,$i,'beschreibung'); 
        $first = array_slice(explode(' ', $beschreibung), 0, 40); 
        $kurze_news = join(' ', $first) . '...&nbsp;'; 
        echo '<a href="index.php?x_id='.$x_id.'">'.$name.'</a><br>'; 
        echo $kurze_news.'<br><br>'; 
    } 
}
?>


bekomme dauernd die ausgabe:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in \projekt\index2.php on line 45

woran kann das liegen.

Hänge schon seit ein paar Tagen an einer an einer Lösung für dieses Problem fest.

Kann mir vielleicht jemand helfen?

Danke

cyrix10
daHooligan
ich behaupte mal, dass das problem an deinem $query und damit an deinem mysql_query liegt.
du hast als $query, wenn man das aus dem oberen teil zusammensetzt mit allen variablen: "select * from $tab_x where beschreibung like '%$eingabe_array[$i]%' or name like '%$eingabe_array[$i]%' and"
Ich vermute mal, dass das "and" am Ende da Probleme bereitet. Wofür hast du die ganzen "%" eigentlich eingebaut??????

Was mir gerade einfällt:
mysql_query sollte in der form
code:
1:
2:
3:
mysql_query (string Anfrage, $dbh)
angegeben sein.
hierbei wäre $dbh = mysql_connect($sqlhost,$sqluser,$sqlpass)
Probier mal die zwei dinge aus.

Kleiner Tipp zum debuggen: geb' mal das $query an vor dem $result mit "echo $query" aus und schau mal, was dabei rauskommt.
Wenn du dir nicht sicher bist, ob die SQL-Anfrage ohne php funktionieren könnte, geb den SQL-query mal direkt in der MySQL-Konsole ein, wenn du root-zugriff auf den server hast.
max77
Diese Fehlermeldung sagt einfach nur aus, daß die Abfrage nicht ausgeführt werden konnte.

Mein Vorschlag zum Debuggen:
Laß Dir, wie von DaHooligan beschrieben $query ausgeben und kopiere es in den phpMyAdmin: dort siehtst Du genauere Fehlermeldungen (geht zwar auch mit php MySQL-Konsole, ist aber so einfacher).
tkshorty
ich würdmal sagen es liegt daran, das du die abfrage in ner schleife kreierst.

sobald die schleife mehr als einmal durchlaufen wird fehlt eine verknüpfung (and,or)
code:
1:
select * from tabelle where beschreibung like '%hallo%' or name like '%hallo%'beschreibung like '%hallo2%' or name like '%hallo2%'


sowas müsste da rauskommen.
und das kann nicht klappen