Christian: Fehlermeldung

Hallo,

Bekomme immer wenn ich den Befehl "mysql_fetch_array" benutze
folgende Fehlermeldung:
**mysql_fetch_array(): supplied argument is not a valid MySQL result resource**

Das passiert auf meinem Apache 1.3.27 mit PHP Version 4.2.2 und MySQL 3.23.39.
Lade ich die Seite auf den Kontent Webserver funktioniert aber alles einwandfrei.
Desweiteren bekomme ich keine Werteübergabe hin, bekomme immer die Meldung das die Variable falsch sei:

**Notice: Undefined variable: zugang in c:\programme\apache group\apache\htdocs\admin\operation.php on line 8**

Kann mir jemand helfen???

Gruß Christian

  1. hallo Christian,

    wenn du ein wenig code posten würdest vielleicht!?

    ciao
    romy

    --
    DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
    ->Alles ist gut wenn es aus Schokolade ist
    1. Hallo Christian,

      du hast kein güliges Resultset erhalten. Das liegt meistens daran, dass schon keine Connection hergestellt werden konnte oder keine Datenbank ausgewählt wurde.

      Einige MySQL-Versionen verlangen die Übergabe vom Link-Identifier und einige kommen ohne aus. Du solltest zum testen nach jedem mysql_ Statement mal die Funktion mysql_error() abfragen und Dir das Ergebnis anzeigen lassen. Dann erübrigt sich die weitere Suche meistens sehr schnell.

      Liebe Grüße aus http://www.braunschweig.de

      Tom

      --
      Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.
    2. hallo Christian,

      wenn du ein wenig code posten würdest vielleicht!?

      ciao
      romy

      Hier der Code aus der Abfrage:

      <html>
      <head>
      <title>Maske zur Eingabe des Passworts für die Datenbankabfrage</title>
      </head>

      <h3>Passworteingabe für Datenbankabfrage mit PHP</h3>

      <form action="operation.php" name="Passwort" method="post">
      Passwort:
      <input type="password" name="zugang">
      <input type="submit" value="Auf geht's">
      </form>

      </body>
      </html>

      und hier der aus operation.php:

      <?php

      $verbindung = mysql_connect("localhost:3306","Administrator","$zugang");

      // Bei Fehler: Abbruch
      if (!$verbindung) { print "<p>Das hat aber nicht hingehauen!</p>"; exit; };

      $db = mysql_select_db("mydb",$verbindung);

      print "<p>Angezeigt wird der Inhalt von <b>schiffe</b> aus der
      Datenbank: <i>mydb</i></p>";

      $ergebnis = mysql_query("SELECT * FROM shiff_info", $verbindung);

      // Als Tabelle formatierte Ausgabe des Inhalts von "schiffe"

      print "\n<table border=1>\n";

      while ($row = mysql_fetch_array($ergebnis))
              {
              print "<tr>\n";
                      print "<td>$row[0]</td>";
                      print "<td>$row[1]</td>";
                      print "<td>$row[2]</td>";
                      print "<td>$row[3]</td>";
              print "</tr>\n";
              };

      print "</table>";

      ?>

      Und hier bekomme ich die Meldung das die Variable "$zugang" nciht definiert sei (Notice: Undefined variable: zugang in...)
      Dewegen kommen dann die Fehler in denen er das Passwort für die Datenbank verlangt.

      Hoffe das hilft ein bißchen

      1. Hallo Christian,

        Hier der Code aus der Abfrage:
        <form action="operation.php" name="Passwort" method="post">

        Passwort:
        <input type="password" name="zugang">

        und hier der aus operation.php:
        <?php

        $verbindung = mysql_connect("localhost:3306","Administrator","$zugang");

        Hier würd' ich glatt auf register_globals=off in php.ini tippen.
        Lass das so. Greife daher mit $_POST['zugang'] auf den Inhalt deines Formularfeldes zu.
        Du kannst übrigens auch die Anweisung
            $zugang = $_POST['zugang'];
        verwenden.

        // Bei Fehler: Abbruch
        if (!$verbindung) { print "<p>Das hat aber nicht hingehauen!</p>"; exit; };

        $db = mysql_select_db("mydb",$verbindung);

        print "<p>Angezeigt wird der Inhalt von <b>schiffe</b> aus der
        Datenbank: <i>mydb</i></p>";

        $ergebnis = mysql_query("SELECT * FROM shiff_info", $verbindung);

        Hier wie Thomas Dir geraten hat, überprüfen, was Sache ist.
        Tip: Schreibe Deine SQL-Anweisung zuerst in einen String, z.B.
        $sql = "SELECT * FROM shiff_info;";
        Prüfe mit
        echo $sql;
        ob Deine SQL-Anweisung auch so aussieht wie sie soll.
           shiff_info oder evtl. schiff_info?

        Führe aus mit
        $ergebnis = mysql_query($sql, $verbindung);

        Wenn Deine Abfrage funktioniert, kannst Du die echo-Anweisung wieder herausnehmen

        Und hier bekomme ich die Meldung das die Variable "$zugang" nciht definiert sei (Notice: Undefined variable: zugang in...)
        Dewegen kommen dann die Fehler in denen er das Passwort für die Datenbank verlangt.

        Gruss,

        Vinzenz