Ankündigung

Einklappen
Keine Ankündigung bisher.

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource

Einklappen

Neue Werbung 2019

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

  • Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource

    Moin, ich erhalte die oben genannte Fehlermeldung, wenn ich mein PHP-Skript anschalte:
    Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource

    Der vermutlich relevante Quellkode:
    PHP-Code:
        include("verbindung_mit_db.php");
        
    $url_abfrage "SELECT url FROM links";
        
    //Wähle Variablen/Feld X von Tabelle Y
        
    $url mysql_query($url_abfrage)
        OR die(
    "ERROR: $url_abfrage <br>".mysql_error());

         while(
    $url_converted mysql_fetch_object($url_abfrage))
            {
            echo 
    $url_converted->url;

        } 
    Die eingebundene Datei verbindung_mit_db.php:

    PHP-Code:
        $verbinden mysql_connect("127.0.0.1""root""") or die("Keine Verbindung möglich OMFGz");
        
    //server, user, passwort
        //die() = falls Verbindung fehl schlägt, gebe dies aus
        
    mysql_select_db("links") or die ("DB existiert nicht!");
        
    //Stelle Verbindung zur DB her (DB-Name) 
    Habe schon Google befragt, war aber nicht ganz so erfolgreich dabei.

    Die MySQL-Anweisung "SELECT url FROM links" verlief erfolgreich in phpmyadmin (Dabei wurde die DB in PHPMYADMIN ausgewäht).

    mMn Mögliche Fehlerquellen:
    - While Schleife
    - Verbindung mit der DB

    Ich sitze hier bestimmt schon bald eine Stunde dran....

    Ideen?
    PHP-Code:
    echo $_POST['Beitrag_DAU']; 


  • #2
    $url_abfrage ist der String - nicht das was du von mysql_query() zurückbekommst.
    You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.

    Kommentar


    • #3
      mysql_fetch_object($url) anstelle von mysql_fetch_object($url_abfrage).

      Kommentar


      • #4
        Vielen Dank!

        Manchmal kommt man auf die einfachsten Sachen auch nach STunden nicht..ich hatte ja sogar richtig gedacht, nur vergessen, dass mysql_query ebenfalls dazu gehört
        PHP-Code:
             while($url_converted mysql_fetch_object(mysql_query($url_abfrage))) 
        Warum erhalte ich mit dieser Version eine Endlosschleife?
        So sollte das egtl. vom Kode her auch schon vorher aussehen ^

        Andere Frage: Für mein Praktikum arbeite ich zur Zeit zur Vertiefung und Beweis meines Wissens an einem WWM-Klon. Kann ich die Fragen "array-artig" speichern?
        Sprich, muss ich für 15 Fragen in der DB 15 Felder anlegen oder reicht es auch, wenn ich ein Feld aber dazu 15 Datensätze anlege?
        PHP-Code:
        echo $_POST['Beitrag_DAU']; 

        Kommentar


        • #5
          Für jeden Durchgang wird das Query neugestartet. was du warscheinlicher haben willst, ist pro Durchgang ein Datensatz/Objekt aus einem schon bestehenden Query.
          You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.

          Kommentar


          • #6
            ersetze mysql_fetch_object(mysql_query($url_abfrage))) durch mysql_fetch_object($url) .
            Das hast du ja weiter oben schon als mysql_query($url_abfrage) definiert

            Kommentar


            • #7
              Zitat von Bas Beitrag anzeigen
              Manchmal kommt man auf die einfachsten Sachen auch nach STunden nicht..
              Du kommst immer noch nicht drauf - was deutlich für mangelndes Grundlagenwissen spricht.

              PHP-Code:
                   while($url_converted mysql_fetch_object(mysql_query($url_abfrage))) 
              Warum erhalte ich mit dieser Version eine Endlosschleife?
              Weil du die Abfrage jedes mal neu machst, und dann jedes mal nur den ersten Datensatz des Ergebnisses berücksichtigst.

              Kommentar


              • #8
                Jo, doch, macht Sinn.

                @ChrisB: Genau darum bin auch gerade dabei, mir PHP- & MySQL-Wissen anzueignen. Sollte es angreifend gemeint sein: Jeder war mal ein Anfänger.

                @GOD: Habe ich schon, dass vorhin war nur eine Art Experiment-Durchlauf. Einfach mal um sehen, was passiert.
                PHP-Code:
                echo $_POST['Beitrag_DAU']; 

                Kommentar


                • #9
                  Gewöhn dir dieses Zusammenklammern von Anweisungen gar nicht erst an. Code ist sehr viel einfacher zu verstehen, wenn man alles in mehrere Zeilen schreibt:

                  PHP-Code:
                  // das ist eh falsch
                  while($url_converted mysql_fetch_object(mysql_query($url_abfrage)))

                  //So wird es funktionieren:

                  $sql "SELECT dies,das FROM tabelle";
                  $res mysql_query($sql) or die( mysql_error() );
                  while ( 
                  $data mysql_fetch_object($res) ) {
                    echo 
                  $data->dies;
                    echo 
                  $data->das;

                  PHP-Code:
                  if ($var != 0) {
                    
                  $var 0;

                  Kommentar


                  • #10
                    Moin,
                    erstmal vielen Dank an alle, die mir geholfen haben.

                    Ich entschuldige mich außerdem bei ChrisB für mein..harsches Verhalten. Dein Beitrag kann durchaus auch objektiv gemeint sein und meine Reaktion war überzogen (auch wenn bei weitem sicher nicht kritisch).

                    @Wolla: Tjoa, wie nenne ich denn optimalerweise die Abfragestring bzw. welchen Suffix soll ich dort verwenden? Habe da ein wenig Namensgebungsprobleme ^
                    PHP-Code:
                    echo $_POST['Beitrag_DAU']; 

                    Kommentar


                    • #11
                      ich würds so machen:

                      PHP-Code:
                      <?php

                      //Verbindungsdaten
                      $server "localhost";
                      $db "test";
                      $user "root";
                      $pw "root";

                      //Verbindung zur Datenbank herstellen
                      mysql_connect($server$user$pw)or die("Datenbankverbindung fehlgeschlagen.");

                      //Datenbank auswaehlen
                      mysql_select_db($db)or die("Datenbank wurde nicht gefunden.");

                      ?>
                      und dann so:

                      PHP-Code:
                      <?php 
                      include("dbconnect.php");
                      ?>
                      <html>
                          <head>
                              <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
                              <title>PHP Lernen</title>
                          </head>
                          <body>
                          <?php
                              
                      //Formulardaten
                              
                      $ergebnis mysql_query("SELECT * FROM testtable");
                              
                      $vname $_POST["vname"];
                               
                      $nname $_POST["nname"];
                                
                      $message $_POST["message"];
                              
                      $eintrag "INSERT INTO testtable (id, name)
                               VALUES (NULL, '
                      $nname')";
                               
                               
                      //Formulardaten eintragen
                               
                      $eintragen mysql_query($eintrag);
                               
                               
                      //Daten auslesen
                               
                      if(mysql_num_rows($ergebnis)){
                                   while(
                      $row mysql_fetch_assoc($ergebnis)){
                                      echo 
                      "<p>"
                                          
                      .$row['id'].' '.$row['name']."</p>";
                                  }
                               }
                            
                      ?>
                          <form name="testform" method="post">
                              Name<input type="text" name="vname" value="Vorname" />
                              Vorname<input type="text" name="nname" value="Nachname"/>
                              <label for="message">Mitteilung<textarea name="message" value="Mitteilung"></textarea></label>
                              <input type="submit" name="submit" />
                          </form>
                          <?php

                          ?>
                          </body>
                      </html>
                      Gruß
                      r33tz

                      Kommentar

                      Lädt...
                      X