Michael: Fehlermeldung beim Auslesen einer Tabelle

Hallo,

also, ich habe folgenden PHP-Source:

$conn = @mysql_connect($server, $user, $pass);
if($conn) {
 mysql_select_db($dbase, $conn);
 echo "<b>Verbindung erfolgreich aufgebaut!</b> Handle-ID: $conn";
 $sql = "SELECT * FROM AD_PROFIL";
 $result=mysql_query($sql, $conn);

$number=mysql_num_rows($result);
 echo "<p> Es sind $number Datensätze gelesen worden.</p>";

echo "<table border=1>";
 while ($row=mysql_fetch_array($result, MYSQL_ASSOC)) {
   echo "<tr><td>";
   echo implode("</td></td>",$row);
   echo "<td></tr>\n";
 }
 echo "</table>";

Also das Skript soll eine Tabelle in meiner SQL-Datenbank ausgeben, aber es kommen zwei Fehlermeldungen:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in mysql-tests/show_table.php4 on line ...
Es sind Datensätze gelesen worden.
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource mysql-tests/show_table.php4 on line ...

Was ist falsch an dem PHP-Code??? Ich komm einfach nicht auf de Lösung!!

Danke schon mal im vorraus.

Gruß
Michael

  1. OK, vielleicht sehe ich gerade den Wald vor Bäumen nicht - Ändere bitte mal so, dass die mysql_select_db-Zeile auch noch vor dem if ($conn) steht, vielleicht scheitert da etwas beim selecten...

    1. »»Ändere bitte mal so, dass die mysql_select_db-Zeile auch noch vor dem if ($conn) steht, vielleicht scheitert da etwas beim selecten...

      Nee, funktioniert immer noch nicht, aber trotzdem Danke.

  2. Hallo Michael,

    $conn = @mysql_connect($server, $user, $pass);

    warum unterdrückst du eine evtl. Fehlermeldung?

    echo "<b>Verbindung erfolgreich aufgebaut!</b> Handle-ID: $conn";

    wird das ausgegeben?

    $sql = "SELECT * FROM AD_PROFIL";

    gibt es die Tabelle "AD_PROFIL"?

    echo implode("</td></td>",$row);

    wohl eher echo implode("</td><td>",$row);, oder (du hast ein '/' zu viel)?

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in mysql-tests/show_table.php4 on line ...
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource mysql-tests/show_table.php4 on line ...

    was sagt mysql_error() (aufgerufen nach mysql_num_rows() bzw. mysql_fetch_array())?

    Grüße aus Nürnberg
    Tobias

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
    1. Hallo,

      $conn = @mysql_connect($server, $user, $pass);
      warum unterdrückst du eine evtl. Fehlermeldung?

      Tu ich das. Ich fange doch ein Fehler mit if($conn) ab.

      echo "<b>Verbindung erfolgreich aufgebaut!</b> Handle-ID: $conn";
      wird das ausgegeben?

      Ja, dieser Text erscheint am Bildschirmm.

      $sql = "SELECT * FROM AD_PROFIL";
      gibt es die Tabelle "AD_PROFIL"?

      Ja, AD_PROFIL éxistiert und beinhaltet zwar erst 2 Datensätze.

      echo implode("</td></td>",$row);
      wohl eher echo implode("</td><td>",$row);, oder (du hast ein '/' zu viel)?

      Ja simmt. Habs geändert.

      Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in mysql-tests/show_table.php4 on line ...
      Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource mysql-tests/show_table.php4 on line ...
      was sagt mysql_error() (aufgerufen nach mysql_num_rows() bzw. mysql_fetch_array())?

      Das ist ja gerade das verrückte, mysql_error(); sagt nichts.

      Ich hab hier nochmal mein kompletten Code aufgelistet:

      #Die Werte in den folgenden Variablen hab ich natürlich herausgelassen.
      $user   = ""; # Username für die MySQL-DB
      $pass   = ""; # Kennwort für die MySQL-DB
      $server = ""; # Adresse/IP/Name des MySQL-Server
      $dbase  = ""; # Name der standardmäßig verwendeten Datenbank

      $conn = @mysql_connect($server, $user, $pass);
      echo mysql_error($conn);
      mysql_select_db($dbase, $conn);
      echo mysql_error();
      if($conn)
      {
        echo "<b>Verbindung erfolgreich aufgebaut!</b> Handle-ID: $conn";
        $sql = "SELECT * FROM AD_PROFIL";
        $result= mysql_query($sql, $conn);
        echo mysql_error();

      $number=mysql_num_rows($result));
        echo mysql_error();
        echo "<p> Es sind $number Datensätze gelesen worden.</p>";
        echo "<table border=1>";

      while ($row=mysql_fetch_array($result,MYSQL_ASSOC))
        {
          echo mysql_error();
          echo "<tr><td>";
          echo implode("<td></td>",$row);
          echo mysql_error();
          echo "</td></tr>\n";
        }
        echo "</table>";
      }
      else
      {
        echo "<b>Verbindung zum MySQL-Server konnte nicht hergestellt werden </b></body></html>";
      }

      Viele Grüße

      Michael

      1. Hallo, ich bins nochmal

        $number=mysql_num_rows($result));

        Hab oben eine Klammer zu viel.

        Viele Grüße
        Michael

  3. Hallo,
    Es funktioniert jetzt. Was weis ich, was da falsch war, bzw. falsch sein sollte.

    Hier nochmal der funktionierene Code:

    <?php

    #Die Werte in den folgenden Variablen hab ich natürlich herausgelassen.
    $user   = ""; # Username für die MySQL-DB
    $pass   = ""; # Kennwort für die MySQL-DB
    $server = ""; # Adresse/IP/Name des MySQL-Server
    $dbase  = ""; # Name der standardmäßig verwendeten Datenbank

    $conn = @mysql_connect($server, $user, $pass);
    echo mysql_error($conn);
    mysql_select_db($dbase, $conn);
    echo mysql_error();
    if($conn)
    {
      echo "<b>Verbindung erfolgreich aufgebaut!</b> Handle-ID: $conn";
      $sql = "SELECT * FROM AD_PROFIL";
      $result= mysql_query($sql, $conn);
      echo mysql_error();

    $number=mysql_num_rows($result);
      echo mysql_error();
      echo "<p> Es sind $number Datensätze gelesen worden.</p>";
      echo "<table border=1>";

    while ($row=mysql_fetch_array($result,MYSQL_ASSOC))
      {
        echo mysql_error();
        echo "<tr><td>";
        echo implode("<td></td>",$row);
        echo mysql_error();
        echo "</td></tr>\n";
      }
      echo "</table>";
    }
    else
    {
      echo "<b>Verbindung zum MySQL-Server konnte nicht hergestellt werden </b></body></html>";
    }

    ?>

    Bye Michael