Probelm mit mysql_num_rows

mydoys.de

Well-known member
ID: 84968
L
20 April 2006
2.758
125
Hi Leute ich habe diesen CODE:

PHP:
$result = mysql_query("SELECT * FROM nachricht WHERE an='$_SESSION[login]' AND read=0", $con);
$num_rows = mysql_num_rows($result);

echo "$num_rows";

Ich bekomme diese fehlermeldung:


Code:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/web50/html/poker2you.de/wartung/liste.php on line 140

Wenn ich von meinem Code
PHP:
AND read=0
rausnehme geht es aber ich benötige das aber.


Woran liegt daS?
 
Hast du mal geprüft ob "read" ein Schlüsselwort ist welches man nicht als Feldname verwenden darf?
 
wenn du mal die Fehlermeldung uebersetzt, merkst du, dass in deinem Fall $result kein Zeiger auf ein Datensatz ist.
meine Vermutung ist, dass das Query fehlschlgaegt, $result == false ist und du daher diese Meldung bekommst.
Pruef das mal und ermittle mit mysql_error() den Fehler, der auftritt.
am besten braust du bei query-aufrufen immer eine fehlerbehandlung ein, so wie:
PHP:
$result=mysql_query($query);
if($result!==false)
{
 #weiter im Code
}
else
 echo "fehler usw.";

Ausserdem:
diese Verwendung von Stringvariablen innerhalb eines Strings ist zwar in PHP zulaessig, jedoch (meiner Meinung nach) nicht schoen anzusehen, und wenn man eine richtige Programmiersprache verwendet, geht sowas eh nicht.
daher:
PHP:
"SELECT * FROM nachricht WHERE an='$_SESSION[login]' AND read=0"
=>
"SELECT * FROM nachricht WHERE an='".$_SESSION[login]."' AND read=0"
und wenn man schon so weit ist kann man dort auch Funktionen einbinden, die eine SQL-Injektion verhindern helfen, weiss aber nicht wie sicher deine session da ist.