Mief: MySQL - mysql_query Fehler

Hallo Leute,
ich habe ein Problem mit einem MySQL-Script:

mysql_connect("localhost", "root", "****");  
mysql_select_db("*****");  
$res = mysql_query("select * from bookofweek where index == 0");  
$num = mysql_num_rows($res);  
echo "$num Datensätze gefunden";

Das Problem ist, dass bei der Ausgabe nur "Datensätze gefunden" steht, aber keine Zahl. Wenn ich den Bereich where index == 0 weglasse, wird die Anzahl aller Datensätze ausgegeben, was ist an meinem Code falsch?

  1. Hallo,

    $res = mysql_query("select * from bookofweek where index == 0");
    $num = mysql_num_rows($res);
    echo "$num Datensätze gefunden";[/code]

    Das Problem ist, dass bei der Ausgabe nur "Datensätze gefunden" steht, aber keine Zahl. Wenn ich den Bereich where index == 0 weglasse, wird die Anzahl aller Datensätze ausgegeben, was ist an meinem Code falsch?

    Probier mal:

    where index = 0

    1. Probier mal:

      where index = 0

      Hab ich schon, geht auch nicht. Hab das Problem jetzt anders gelöst:
      Ich lese alle Datensätze ein und lass die durch ne while-Schleife laufen. Mit ner if-Abfrage frage ich dann bei jedem durchlauf ab, ob ich beim entsprechenden Datensatz angekommen bin und schreibe die Befehle dann einfach in den if-Container. Ist etwas umständlicher, funktioniert aber.

  2. ich habe ein Problem mit einem MySQL-Script:

    Als Ergänzung: Das ist KEIN Mysql-Script, das ist irgendeine Programmiersprache. Leider sagst du aber nicht, welche. Istr zwar für diesen Fehler nicht relevant aber wenn es einen weiteren Fehler gibt, verhinderst du, dass dir geholfen wird.

  3. Tach!

    mysql_connect("localhost", "root", "****");

    mysql_select_db("*****");
    $res = mysql_query("select * from bookofweek where index == 0");
    $num = mysql_num_rows($res);
    echo "$num Datensätze gefunden";

    
    >   
    > Das Problem ist, dass bei der Ausgabe nur "Datensätze gefunden" steht, aber keine Zahl. Wenn ich den Bereich `where index == 0`{:.language-sql} weglasse, wird die Anzahl aller Datensätze ausgegeben, was ist an meinem Code falsch?  
      
    Die fehlende Fehlerbehandlung. Wenn du von den verwendeten PHP-Funktionen die Funktionsergebnisse auswerten würdest, bekämest du in $res ein false, was signalisert, dass MySQL igendwas nicht abarbeiten konnte. Was das genau ist, verrät dir dann mysql\_error(). Zudem scheint bei dir noch das error\_reporting nicht auf E\_ALL zu stehen und/oder display\_errors ausgeschaltet zu sein. Diese beiden Einstellungen braucht man zum Entwickeln und Fehlersuchen. Damit hätte dir mysql\_num\_rows() einen Folgefehler angezeigt, weil das false in $res keine Result-Kennung ist. In $num steht nun ebenfalls ein false, das im String-Kontext zu einem Leerstring wird.  
      
    Und wenn du nun ein Script geschrieben hast, das nicht nur von schönem Wetter ausgeht sondern auch Fehlerzustände brücksichtigen kann, dann wirst du einen Syntaxfehler von MySQL zu Gesicht bekommen, der dir sagen wird, dass ein bestimmtes Schlüsselwort an der Stelle nicht erwartet wird. Wenn man Keywords als Spaltennamen verwendet, muss dieser besonders quotiert werden.  
      
      
    dedlfix.