Jo: MySql 4.20 auf 4.114

Hallo Leute,

habe einen Webshop und seit es auf 4.114 aktualisiert wurde bekomme ich auf der Anmeldeseite folgende Warnung
############
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /usalubaq/www.usanutritionstore.at/DE/formular.php on line 291
############
 In Zeile 291 steht
################
289##$stat_kunde = "SELECT * FROM Kunden WHERE id='".$_SESSION["kundenid"]."'";
290##$result_kunde = mysql_query($stat_kunde, $dblink);
291##if( $row_kunde = mysql_fetch_array($result_kunde) ) {
292## $txtfirma        = $row_kunde['firma'];
293## $txtanrede       = $row_kunde['anrede'];

usw....
#######

Weiß jemand was ich da ändern muss?

Danke schon mal für jede Hilfe
Gruß Jo

  1. Hi,

    Weiß jemand was ich da ändern muss?

    Ja, dein Fehlerbehandlungskonzept. Soll heißen: Irgendwo vorher ist dir ein Fehler durchgegangen, vermutlich eine fehlgeschlagene Verbindung. Die Datenbankbefehle solltest du immer in etwa so einsetzen:
    $connection = mysql_connect(...) or die("Fehler bei der Datenbankverbindung");

    MfG
    Rouven

    --
    -------------------
    ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
    1. echo $begrüßung;

      $connection = mysql_connect(...) or die("Fehler bei der Datenbankverbindung");

      Und welcher Fehler aufgetreten ist interessiert wohl nicht? Die Ausgabe von mysql_error() sollte schon noch irgendwohin stattfinden.

      Außerdem empfiehlt es sich immer, sich über die (teilweise inkompatiblen) Änderungen in den neueren Versionen zu informieren:Upgrading from Version 4.0 to 4.1.

      echo "$verabschiedung $name";

      1. Hi,

        Und welcher Fehler aufgetreten ist interessiert wohl nicht? Die Ausgabe von mysql_error() sollte schon noch irgendwohin stattfinden.

        *Räusper* ja, genau meine Meinung, das Problem ist, ich hab seit 2 Jahren keine Zeile PHP mehr geschrieben und bin mir immer nicht sicher wie die Befehle heißen.

        Rouven

        --
        -------------------
        ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
  2. Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /usalubaq/www.usanutritionstore.at/DE/formular.php on line 291

    mysql_fetch_array() erwartet ein Array. Wenn kein Resultat aus der Abfrage kommt, gibt es auch kein Array!

    Prüfe also vorher auf ein vorhandenes Array:
    if (mysql_num_rows($result_kunde) > 0) {
      ...dann erst weiter...
    } else {
      ...Fehler...
    }

    Nur mal so nebenbei: Wenn das der Anmeldebereich ist, wie kann dann bereits eine "Userid" vorhanden sein?

    Gruß,
    Stevie B.

    1. echo $begrüßung;

      Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /usalubaq/www.usanutritionstore.at/DE/formular.php on line 291

      mysql_fetch_array() erwartet ein Array. Wenn kein Resultat aus der Abfrage kommt, gibt es auch kein Array!

      Nein, es erwartet kein Array sondern eine Ressource.

      Prüfe also vorher auf ein vorhandenes Array:
      if (mysql_num_rows($result_kunde) > 0) {

      Auch mysql_num_rows() erwartet eine Ressource. So kommst du nur vom Regen in die Traufe. Und nein, ein vorangestelltes @ ist nicht die Lösung.

      Die richtige Lösung ist, im Handbuch nachzulesen, was die Funktionen im Gut- und im Fehlerfall zurückgeben und auf diese Unterschiede zu reagieren.

      echo "$verabschiedung $name";