• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

mysql_num_rows, wenn leere Tabelle --> PHP geht nicht weiter

power

Neues Mitglied
Ich versuche mir im Moment ein Gästebuch zu erstellen mit PHP und einer Mysql Datenbank. Das Gästebuch funktioniert prima, aber nur wenn es mindestens einen Eintrag in der Tabelle hat. Wenn es keinen Eintrag in der Tabelle hat, wird alles was nach Zeile 75 kommt, nicht mehr ausgewertet/dargestellt (nicht mal mehr das HTML weiter unten). Warum wird alles nach Zeile 75 nicht mehr ausgewertet/dargestellt/ausgegeben?

PHP:
$sql = "SELECT * FROM gaestebuch;";
$result = mysql_query($sql,$db); 
$number = mysql_num_rows($result) OR die("ERROR");
Diese Zeile und die Restlichen  werden nicht erreicht

Die Ausgabe auf der Homepage ist das ERROR.
 
Du hast doch genau das in deinem Code geschrieben; Wenn mysql_num_row() nichts zurückgibt bzw. der Wert null ist, soll angebrochen werden. Deswegen verstehe ich nicht, warum du dich genau darüber wunderst. Ansonsten musst du eben das "or die()" rauslöschen.

MfG Icy
 
Danke für die Antwort. Das war wirklich ein blöder Fehler. Ich dachte das or die ("ERROR"); wird nur ausgeführt wenn der Befehl nicht funktioniert hat, aber das or die("ERROR") wird anscheinend ausgeführt, wenn man null zurück bekommt.
 
nein der fehler ist ganz einfach das man sowas nicht schreibt! ;)

entweder zuweisen ODER auf fehler überprüfen ODER erst zuweisen und direkt danach testen aber nicht im selben befehl ^^

//Edit: die() zu verwenden ist eh schlechter style ^^ guck dir lieber mal Exceptions an.
 
is' wohl geklärt, aber ich möcht' dir trotzdem noch den ansatz mit abfragen vorschlagen:

PHP:
$result = mysql_query($sql) or die(mysql_error());

if(mysql_num_rows($result) == 0)
   {
   echo 'keine datensätze vorhanden!';
   }
      else
         {
         //while-schleife o.ä. zur ausgabe
         }

Nils aka XraYSoLo
 
Zurück
Oben