Willkommen in der Webstatt Zum Webstatt Blog und Stories
kamilente am 16.03.07 07:50

morgen allerseits,

beiss mir (wiedereinmal seit Stunden X( ) die Zähne an PHP, genauer an mysql_num_rows aus.

Eigentlich wollte ich etwas ganz simples machen: Ermitteln wieviele pms noch nicht gelesen wurden (=> read=0 in der tabelle pm).

Aber egal wie ich es mache, entweder bekomme ich ein falsches Resultat, oder nur mysql-Fehler.

Das erstaunliche ist: Wenn ich zB die Datensätze zählen lasse, bei denen die id=1 ist, dann gehts, kommt brav 1 zurück. Aber wenn ich dann nur WHERE id = '1' mit WHERE read = '0' austausche, gibts Fehler^3.

$sql = mysql_query("SELECT *
FROM pm
WHERE read = '$zahl'") OR die(mysql_error());

if(mysql_num_rows($sql) > 0){

$result = (mysql_num_rows($sql));

echo 'lalala'.$result;

} else { echo 'nix'; }


Momentan hab ichs so, dazu meint er
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 'read = '1''

Fantastisch!

Erlöse mich doch jemand aus meiner Bllindheit, ich möchte nur die ungelesenen Pms zählen, bereits die halbe Nacht :tired:

netcup.de Warum gibt es hier Werbung?
nuit nuit am 16.03.07 11:48

read ist ein schlüsselwort oder?

probier mal:
`read` = '$zahl'

Michael Michael am 16.03.07 11:56

Am Rande: Hier würde ich COUNT benutzen und nicht mysql_num_rows.
Also
list($cnt) = mysql_fetch_array(mysql_query(" SELECT COUNT(*) cnt FROM pm WHERE `read`=$zahl"));

Wenn $zahl eine Zahl ist, dann muss es gar nicht in Hochkommas. Warum es allerdings bei $zahl==0 nicht funktionieren soll ist mir schleierhaft...

kamilente am 16.03.07 18:49

jau nuit, das war der Fehler, dankeschön!

hab 'read' verwendet anstelle von `read`.

@ Michael: danke, kannte ich noch nicht.

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt