Fehlermeldung bei mysql_num_rows(

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Fehlermeldung bei mysql_num_rows(

    Hallo Wissende,
    ich bin in PHP nicht ganz so standfest und lerne noch dazu.

    Folgender Fehler tritt auf bei einer Datenbankabfrage:

    PHP-Datei anz1.php:

    <html>
    <body>
    Wählen Sie aus, welcher Datensatz geändert werden soll:<p>
    <form action = "uf16b.php" method = "post">
    <?php

    include 'conf/config.php';
    error_reporting(E_ALL);

    $db = mysql_connect($server,$user,$passwort);
    $res = mysql_db_query("home_sonstige",
    "select * from id,datumstand,ablesung,kommentar,firma");
    $num = mysql_num_rows($res);

    // Tabellenbeginn
    echo "<table border>";

    // Überschrift
    echo "<tr> <td>Auswahl</td> <td>ID</td>";
    echo "<td>Datum</td> <td>Stand</td>";
    echo "<td>Ablesung</td> <td>Kommentar</td>";
    echo "<td>Kommentar</td> </tr>";

    for ($i=0; $i<$num; $i++)
    {
    $nn = mysql_result($res, $i, "id");
    $vn = mysql_result($res, $i, "datum");
    $pn = mysql_result($res, $i, "stand");
    $ge = mysql_result($res, $i, "ablesung");
    $gt = mysql_result($res, $i, "kommentar");
    $xe = mysql_result($res, $i, "firma");

    // Tabellenzeile mit -zellen
    echo "<tr> <td><input type='radio' name='auswahl'";
    echo " value='$pn'></td> <td>$nn</td> <td>$vn</td>";
    echo "<td>$pn</td> <td>$ge</td> <td>$gt</td> <td>$xe</td> </tr>";
    }

    // Tabellenende
    echo "</table>";


    mysql_close($db);
    ?>
    <p>
    <input type="submit" value="Datensatz anzeigen">
    </form>
    </body>
    </html>

    Bei Ausgabe der Datei folgende Fehlermeldung:

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in f:\intranet\programme\homemanagment\anz1.php on line 13

    Ich komme nun einfach nicht weiter. Habt ihr vielleicht eine Hilfe und wie vermeide ich den Fehler.
    Im übrigen wurde die Hilfe bereits benutzt. Ich kann allerdings mit den dortigen Threads nix anfangen.

    Danke
    strzepp

  • #2
    Hallo,
    mysql_db_query ist seit Version 4.0.x veraltet. Es könnte also daran liegen. Für die Datenbankabfrage benutze besser:
    PHP-Code:
    mysql_select_db();
    mysql_query(); 
    Am besten, Du liest das ganze nochmal im Manual nach.

    OffTopic:
    Benutze das nächste mal die php-Tags des Forums für Deinen Code, dann kann man ihn besser lesen...

    Kommentar


    • #3
      Danke für die schnelle Antwort.

      Original geschrieben von gruenspan
      mysql_db_query ist seit Version 4.0.x veraltet. Es könnte also daran liegen. Für die Datenbankabfrage benutze besser:
      PHP-Code:
      mysql_select_db();
      mysql_query(); 
      Am besten, Du liest das ganze nochmal im Manual nach.
      Genau das habe ich gerade gemacht und bin genau auf den Fehler gestossen

      Original geschrieben von gruenspan
      OffTopic:
      Benutze das nächste mal die php-Tags des Forums für Deinen Code, dann kann man ihn besser lesen...
      Hab es so geändert:
      PHP-Code:
         $res mysql_db_query("homemanagment","select * from home_sonstige"); 
      jetzt klappt es auch. Manchmal ist man eben vernagelt und muss 10x lesen.

      Danke
      strzepp

      Kommentar


      • #4
        mysql_db_query ist zwar verwaltet, aber die Query lautet.

        PHP-Code:
         $res mysql_db_query("home_sonstige",
        "select * from id,datumstand,ablesung,kommentar,firma"); 
        Das Bedeutet also du möchtest alle Felder (*, was man eh nie machen sollte), von den Tabellen "id", "datumstand", "ablesung", "kommentar" und "firma" haben? Glaube ich ganz Spontan einfach mal nicht

        Query sollte daher heißen:

        PHP-Code:
        $res mysql_query("SELECT id, datumstand, ablesung, kommentar, firma FROM deine_tabelle"); 
        Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

        Kommentar


        • #5
          Original geschrieben von strzepp

          PHP-Code:
             $res mysql_db_query("homemanagment","select * from home_sonstige"); 
          jetzt klappt es auch. Manchmal ist man eben vernagelt und muss 10x lesen.
          Öffensichtlich hast Du es nicht richtig gelesen. das Manual sagt:
          Diese Funktion ist seit PHP 4.0.6 veraltet. Verwenden Sie diese Funktion nicht. Stattdessen sollten Sie die Funktionen mysql_select_db() und mysql_query() verwenden.

          Kommentar


          • #6
            Ja. Nein? Äh doch.

            Original geschrieben von gruenspan
            Öffensichtlich hast Du es nicht richtig gelesen. das Manual sagt:
            Ich hab Dich schon richtig verstanden und werde es ändern. Daher auch Danke an Deinen Tipp.

            Mein Problem war in Zeile 11.
            PHP-Code:
             $res mysql_db_query("home_sonstige","select * from id,datumstand,ablesung,kommentar,firma"); 
            Ich habe dort anstelle der Datenbank (homemanagment) die Tabelle (home_sonstige) angegeben. Daher der Fehler. Und den Rest schreibe ich jetzt um
            PHP-Code:
            mysql_select_db();
            mysql_query(); 
            Das war also bei mir ein reiner Denk- und Verständnisfehler.

            Also nochmals Danke
            Steffen

            Kommentar

            Lädt...
            X