Fehlermeldung bei mysql_fetch_array()

  • Momoin Html-seminar.de Community!


    Heut hab ich wieder eine frage zu einem Fehler, und zwar der hartnäckiger.

    Zitat

    mysql_fetch_array() expects parameter 1 to be resource, boolean given in ...... on line 56


    Ich weiss dank Google, was es bedeutet und was es bewirkt.
    aber! das Schöne Aber kommt jetzt ins spiel.


    Wo soll der Fehler stecken frag ich mich... Ich kann aus der Fehlermeldung folgendes Herauslesen das es in der ZEILE 56 ist, sprich dort wo das ist.

    Code
    $datensatz = mysql_fetch_array($myerg, MYSQL_ASSOC);


    mehr weiss ich auch nicht, auch den Befehl mysql_error(); sowie error_reporting(); konnte mir nicht weiterhelfen..


    Hier noch der Code dazu





    Freundliche Grüsse


    yobas

  • Dann schreib doch in deinen Code auch diese Zeile die du da postest statt:


    PHP
    <span class="syntaxdefault">$datensatz </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">mysql_fetch_array</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$erg</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">MYSQL_ASSOC</span><span class="syntaxkeyword">); </span><span class="syntaxdefault"></span>


    Übrigens ist Zeile 56 deines Codes bei mir:


    Code
    <label>Passwort:</label>


    Also entweder hast du die falsche Meldung, die falsche Zeile oder den falschen bzw. schon wieder bearbeiteten Code gepostet. So ist es normalerweise schwierig, Fehler zu suchen..

  • Gut Statt 56 ist es in der Zeile 24. da ich den Code ausgeschnitten habe um ein besseren übersicht zu kriegen


    Das tut mir wirklich leid, hab echt nicht mehr daran gedacht dass es in einer andere zeile sein könnte.

  • Ja. Funktioniert der korrigierte Code nun? Warum hast du folgende Zeile doppelt?


    PHP
    <span class="syntaxdefault">$sql </span><span class="syntaxkeyword">.= </span><span class="syntaxstring">" WHERE BN='$loginid' AND ='$keywort'"</span><span class="syntaxkeyword">; </span><span class="syntaxdefault"></span>
  • Dein SQL Code ist falsch, daher gibt mysql_query false zurück und mit false kann mysql_fetch_assoc nichts anfangen, habe deinen SQL Code jetzt nicht angeschaut aber:


    Code
    $sql .= " WHERE BN='$loginid' AND ='$keywort'";


    AND ='$keywort' .. ja was denn? Die Syntax sieht so aus:


    Code
    AND variable = wert
  • Zitat von &quot;lauras&quot;

    Ja. Funktioniert der korrigierte Code nun? Warum hast du folgende Zeile doppelt?


    PHP
    <span class="syntaxdefault">$sql </span><span class="syntaxkeyword">.= </span><span class="syntaxstring">" WHERE BN='$loginid' AND ='$keywort'"</span><span class="syntaxkeyword">;  </span><span class="syntaxdefault"></span>


    Oh da hab ich wohl nicht aufgepasst.. als ich es reingestellt habe, hab zwar den fehler schon bemerkt aber beim kopieren und reinstellen nicht.
    bin nämlich ausversehens auf die CTRL + D Tasten Kompi geraten.


    Zitat von &quot;Basiii&quot;

    Dein SQL Code ist falsch, daher gibt mysql_query false zurück und mit false kann mysql_fetch_assoc nichts anfangen, habe deinen SQL Code jetzt nicht angeschaut aber:


    Code
    $sql .= " WHERE BN='$loginid' AND ='$keywort'";


    AND ='$keywort' .. ja was denn? Die Syntax sieht so aus:


    Code
    AND variable = wert


    Nun dies mit dem Variable = wert, hab ich mal umgeändert.
    hmm... Falsch geschrieben sagst du?.. öhm dann müsste ich es also neu schreiben?

  • Oh man drPHIP132 ist ja schon Gut... Hast du gut gemacht.


    dann ist alles was mit MYSQL zutun hat im script Falsch, versteh ich das richtig? Wenn ja, wie müsste ich es korrekt ausschreiben?


    also das hier ist ja scheinbar falsch.

    Code
    echo "<p>Kontrolle LoginID: {$_POST['eveNicknameLogname'] }</p>";        // Zur Kontrolle
            echo "<p>Kontrolle Passwort: {$_POST['eveNicknameKeyname'] }</p>";       //     Zur Kontrolle
            $link = mysql_connect("localhost", "root", "");
            mysql_select_db('loginbereich');
            $sql = "SELECT * AS anzahlzugang FROM zgd-bereich WHERE 1";
            $sql .= " WHERE BN = ['$loginid'] AND PW = ['$keywort'] ";
            $myerg = mysql_query($sql);
            echo "<hr />SQL: $sql<hr />";
            $datensatz = mysql_fetch_array($myerg, MYSQL_ASSOC); <------------------  DAS WÄRE ZEILE 24.




    EDIT:


    GUT ich verstehs gar nicht.. versteh nur Bahnhof :cry:

  • Wie schon gesagt: Deine SQL-Query schlägt fehl, mysql_query() gibt FALSE zurück, mysql_fetch_array() kann damit nichts anfagen und spuckt die Fehlermeldung aus. Die Ursache: dein Query-String, abgespeichert in $sql.

    • SELECT * AS ...Das wird nichts, du kannst nur einzelne Felder mit AS "umbenennen". Wenn du alle Felder abfrage willst, schreib einfach SELECT * FROM ...
    • Du hast zwei WHERE-Klauseln, lass das WHERE 1 einfach weg.
    • ['$loginid'] du kannst in Strings mit doppelten Anführungszeichen ohne weiteres Variablen verwenden, also
      PHP
      <span class="syntaxdefault">$sql </span><span class="syntaxkeyword">= </span><span class="syntaxstring">"... $variablenname ..."</span><span class="syntaxkeyword">; </span><span class="syntaxdefault"></span>


    Wie schon gesagt, lass dir die Variable $sql mit echo ausgeben und teste sie mit PhpMyAdmin.


    Hoffe, ich konnte helfen,
    webmaster3000

  • Ich hab das Problem Gelöst!


    Der Fehler war, dass ich etwas vergass zu schreiben beim

    Code
    $sql = "SELECT  count(*) AS anzahlzugang FROM zgd-bereich ";


    und hier die Lösung

    Code
    $sql = "SELECT  count(*) AS anzahlzugang FROM `zgd-bereich` ";


    Der Fehler lag im detail und zwar, vergass ich bei zgd-bereich die ` zeichen, man muss im MYSQL aufpassen, bei der Tabellen benennung. Bei einer normalen benennung bleibt es ohne ` und bei ( bindestrich ) muss man ` dazu schreiben


    Fehler Zwei war.


    Code
    $sql .= " WHERE BN= '$loginid' AND PW= '$keywort' ";


    Dank MYSQL kam ich auf die Lösung


    Lösung:

    Code
    $sql .= " WHERE eveNicknameLogname = '$loginid' AND eveNicknameKeyname = '$keywort' ";


    und ein kleines danke schön an webmaster3000.

  • EDIT: Weil Lauras Mich verwarnt hat, weil ich doppel gepost habe, werde ich es Anders Formulieren
    EDit: Bild wird Hochgeladen.


    was jetzt nicht funktioniert ist, dass ich die meldung erhalte. Das die Datenbank nich vorhanden wäre, wie kommt's dazu?
    Anhand: Bilder


    MYSQ Bild 1#
    MYSQ Bild 2#
    kanns daran liegen das ich bei den Funktionen ( Bild 2 ) auf ENHEX habe? das es nicht klappt?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!