Bastian: MySQL und PHP: etwas funktioniert da nicht mehr.

Hallo zusammen.

Ich erhalte nach der Ausführung des PHP-Scripts, welches eine MySQL-Abfrage beinhaltet, folgende Fehlermeldung:

Warning:  mysql_fetch_row(): supplied argument is not a valid MySQL result resource in...

Nun frage ich mich, was am Script falsch sein soll. Hier der Ausschnitt:

<?php
    $benutzerinfos = "SELECT * FROM $tabelle";
  $ergebnis = mysql_db_query($db, $benutzerinfos, $verbindung);
    while ($reihe = mysql_fetch_row($ergebnis)) {
     print("<h1>$reihe[0]</h1>");
         print("<p>$reihe[1]</p>");
         print("<p>$reihe[2]</p>");
         print("<p>$reihe[3]</p></td>");
  }
?>

Ich habe das Ganze zuvor mit mysql_fetch_array() ausprobiert und es klappte ebenfalls nicht.

Woran könnte das liegen?

  1. Hallo Bastian,

    Woran könnte das liegen?

    Wenn ich dich richtig verstanden habe, dann daran, dass du $ergebnis in mysql_fetch_row einfach nur durch $benutzerinfos ersetzen musst.

    mfg Dave

    1. Hallo Bastian,

      ich habe da gelesen, dass man mysql_db_query() auch nicht mehr einsetzen soll, sondern dafür

      mysql_select_db($con);
      und mysql_query($querystr, $con);

      und dann schreib mal

      echo mysql_error($con);

      Und dir wird ein Licht aufgehen, was an Deinem Query falsch ist. Es ist gar kein Rresultset dabei herausgekommen, alos ist ein grundlegender Fehler im Query oder in der Connection.

      Grüße

      Chris (C)

      1. Hi Chris (C),

        mysql_select_db($con);
        und mysql_query($querystr, $con);

        Wobei der Parameter natürlich optional ist, wenn nur eine Connection existiert. Was mich interessieren würde ist, wie das rein Performancetechnisch aussieht. Ist es schneller, die Connectionreferenz immer zu übergeben, oder ist das egal?
        (Wie gesagt, nur wenn man eine Connection hat - sonst geht das ja garnicht)

        Und dir wird ein Licht aufgehen, was an Deinem Query falsch ist. Es ist gar kein Rresultset dabei herausgekommen, alos ist ein grundlegender Fehler im Query oder in der Connection.

        ACK. Deshalb beim Coden an sich immer die "schweigenden" @-Zeichen weglassen, und erst nach dem Debugging einfügen, sonst kann so eine Fehleranalyse *sehr* lange dauern...

        Grüße aus Barsinghausen,
        Fabian

        1. Ehlo Fabian,

          das mit der Performance würde ich an Deiner Stelle einfach mal ausprobieren. Da aber eine Verbindung über HTTP soviele Freiheitsgrade hat, wird man ohne Innenansicht des Object-Codes (Prozessorebene) nix dazu sagen können. Ein Zugriff auf eine Variable wird da nicht viel weniger Zeit benötigen, als beim Umweg über die Tabelle, die die Adresse der Variable enthält. 2-4 Takte eben.

          Grüße aus der Unterwelt

          Chris (C)

          1. Hi Chris (C),

            das mit der Performance würde ich an Deiner Stelle einfach mal ausprobieren. Da aber eine Verbindung über HTTP soviele Freiheitsgrade hat, wird man ohne Innenansicht des Object-Codes (Prozessorebene) nix dazu sagen können. Ein Zugriff auf eine Variable wird da nicht viel weniger Zeit benötigen, als beim Umweg über die Tabelle, die die Adresse der Variable enthält. 2-4 Takte eben.

            Ja, so ähnlich denke ich mir das auch. Habe aber im Moment nicht so die Zeit, mich damit zu beschäftigen. Aber nächsten Mittwoch gibt's Ferien =)

            Grüße aus der Unterwelt

            Hä? Bist du so'n Warez-Chracker oder was? *fg*

            Grüße aus Barsinghausen,
            Fabian

  2. Hallo Bastian,

    <?php
        $benutzerinfos = "SELECT * FROM $tabelle";

    1. Was steht in $tabelle? ($benutzerinfos ausgeben!)
    2. http://www.dclp-faq.de/q/q-sql-select.html

    $ergebnis = mysql_db_query($db, $benutzerinfos, $verbindung);

    (wie schon angesprochen): mysql_db_query() -> mysql_select_db() + mysql_query()

    while ($reihe = mysql_fetch_row($ergebnis)) {
    Ich habe das Ganze zuvor mit mysql_fetch_array() ausprobiert und es klappte ebenfalls nicht.

    welches mysql_fetch_* ist eigentlich egal. (mysql_fetch_assoc() ist aber _imho_ einfacher)

    Woran könnte das liegen?

    was sagt mysql_error()?
    hat das verbinden mit der Datenbank überhaupt funktioniert (ich habe auch schon vergessen die Datei die das macht einzubinden und mich dann gewundert warum es nicht funktioniert :-))?

    Grüße aus Nürnberg
    Tobias

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