Webstatt.org - Community seit 2006 - 2012 (2024?)

mysql_num_rows spukt

user-214
16.03.2007 06: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'"zwinkern 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:

Avatar user-271
16.03.2007 10:48

read ist ein schlüsselwort oder?

probier mal:
`read` = '$zahl'

#!/bin/bash
traurig){ neutral:& };:
Avatar user-253
16.03.2007 10: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"zwinkern);

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

user-214
16.03.2007 17:49

jau user-271, das war der Fehler, dankeschön!

hab 'read' verwendet anstelle von `read`.

@ user-251el: danke, kannte ich noch nicht.