detlevk: Anfängerproblem Datenbank

Bei der Testabfrage einer Datenbanktabelle erhalte ich kein Ergebnis, obwohl die Tabelle existiert und auch Daten enthält.
Die Verbindung über
$db = @mysql_connect('xxx', 'yyy', 'zzz');
funktioniert einwandfrei.
Die Abfrage über

$sql = "SELECT * FROM tabelle";  
$result = mysql_query($sql, $db);

liefert kein Ergebnis.
Die Testabfrage ist ein abgewandeltes Beispiel aus
Jörg Krause: PHP 5 Grundlagen und Profiwissen
Tippfehler konnte ich keine entdecken. Die Daten der Verbindung habe ich für diese Anfrage verändert, weil der Zugang nicht für alle öffentlich sein soll.
Ich weiß nicht mehr, wo ich noch den Fehler suchen soll!

  1. Die Abfrage über

    $sql = "SELECT * FROM tabelle";

    $result = mysql_query($sql, $db);

    
    > liefert kein Ergebnis.  
      
    Was liefert sie denn? Einen Error oder bloss ein leeres Ergebnis?  
      
    Mach mal mysql\_error(); nach Deiner Abfrage und sag bescheid (wenn Du dann noch Hilfe brauchst).  
      
    Viele Gruesse  
    der Bademeister
    
  2. Hallo!

    $db = @mysql_connect('xxx', 'yyy', 'zzz');

    Gib das @ weg -> unterdrückt nämlich Fehlermeldungen

    Die Abfrage über

    $sql = "SELECT * FROM tabelle";

    $result = mysql_query($sql, $db);

      
    du hast keine Datenbank ausgewählt.  
    mit mysql\_connect() stellst du nur eine MySQL Verbindung her  
     Siehe: [PHP Manual - Mysql_connect](http://at.php.net/manual/de/function.mysql-connect.php)  
      
    Nimm entweder <http://at.php.net/manual/de/function.mysql-db-query.php> oder öffne die DB per <http://at.php.net/manual/de/function.mysql-select-db.php>  
      
    Grüße!
    
    1. du hast keine Datenbank ausgewählt.
      mit mysql_connect() stellst du nur eine MySQL Verbindung her
      Siehe: PHP Manual - Mysql_connect

      Nimm entweder http://at.php.net/manual/de/function.mysql-db-query.php oder öffne die DB per http://at.php.net/manual/de/function.mysql-select-db.php

      Grüße!

      Danke! Das dürfte es gewesen sein! Gerade als Anfänger, der sich das ohne Lehrer selbst beibiegt übersieht man solche Dinge sehr leicht!

  3. Hallo,

    Die Verbindung über
    $db = @mysql_connect('xxx', 'yyy', 'zzz');
    funktioniert einwandfrei.

    Die Abfrage über

    $sql = "SELECT * FROM tabelle";

    $result = mysql_query($sql, $db);

    
    > liefert kein Ergebnis.  
      
    Woher weisst du, dass es "kein" Ergebnis liefert?  
    nur `$result = mysql_query($sql, $db);`{:.language-php} erzeugt ja nur erstmal eine MySql Resource ... die man dann noch mit mysql\_fetch\_array() und wie diese Funktionen alle heissen auswerten muss, so mit while-Schleife und so.  
      
    Wenn du bei `$result = mysql_query($sql, $db);`{:.language-php} keinen Fehler (Ausnahme, Abbruch) bekommst, dann hat die Abfrage ja erstmal funktioniert.  
      
    Also wie sieht dein Code nach: `$result = mysql_query($sql, $db);`{:.language-php} aus?  
      
    Ciao, Frank
    
    1. Woher weisst du, dass es "kein" Ergebnis liefert?

      Ich habe da eine Abfrage:

      if ($result)  
      {  
        $number = mysql_num_rows($result);  
        echo "<P>Es sind $number Datensätze gelesen worden.";  
      }  
      else  
      {  
        echo "<P>mysql_error($db)";  
      }
      

      Diese Abfrage liefert die Fehlermeldung, also gibt es kein Result Set!

      nur $result = mysql_query($sql, $db); erzeugt ja nur erstmal eine MySql Resource ... die man dann noch mit mysql_fetch_array() und wie diese Funktionen alle heissen auswerten muss, so mit while-Schleife und so.

      Wenn du bei $result = mysql_query($sql, $db); keinen Fehler (Ausnahme, Abbruch) bekommst, dann hat die Abfrage ja erstmal funktioniert.

      Also wie sieht dein Code nach: $result = mysql_query($sql, $db); aus?

      Ciao, Frank

  4. Hallo

    $db = @mysql_connect('xxx', 'yyy', 'zzz');

    $sql = "SELECT * FROM tabelle";

    $result = mysql_query($sql, $db);

    
    > liefert kein Ergebnis.  
      
    grundsätzlich ist eine leere Ergebnismenge kein Fehler.  
      
    
    > Die Testabfrage ist ein abgewandeltes Beispiel aus  
    > Jörg Krause: PHP 5 Grundlagen und Profiwissen  
      
    Anscheinend ist dieses Buch inzwischen zu alt.  
      
    Ich empfehle heutzutage, sich nicht mehr mit den antiquierten und  
    leistungsschwachen mysql\_\*-Funktionen zu befassen, sondern statt  
    dessen mit [mysqli](http://www.php.net/manual/de/book.mysqli.php) anzufangen oder gleich einen Abstraktionslayer  
    zu nutzen.  
      
      
    Freundliche Grüße  
      
    Vinzenz