Ankündigung

Einklappen
Keine Ankündigung bisher.

mysql_fetch_row(): supplied argument is not a valid MySQL re

Einklappen

Neue Werbung 2019

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

  • mysql_fetch_row(): supplied argument is not a valid MySQL re

    Hallo,
    ich habe folgendes Problem. Ich möchte eine Suche in einer Datenbank machen und das Ergebnis dann ausgeben. Ansprechen der Datenbank sowie die Suche und die Rückgabe scheint zu klappen. Doch wenn ich jetzt mittels mysql_fetch_row aus der Ergebnismenge die einzelnen Einträge auslesen lassen möchte, dann gibt er mir folgende Fehlermeldung:

    Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\apachefriends\xampp\htdocs\data\menue1.php on line 28

    Ich gebe euch mal den Code an, den ich bisher zusammengestrickt hab:

    Code:
    <?php
        $verbindung=@MYSQL_CONNECT("localhost","root","");
    
        if($verbindung) {
    
        $query = "SELECT begriff FROM menue WHERE menue-bez=menupunkt1";
        $result = @MYSQL_QUERY("datei",$query,$verbindung);
    
        while (list($begriff)= mysql_fetch_row($result)){
        echo "$begriff
    \n";
        }
        mysql_close($verbindung);
    
        } else {
        echo "Keine Verbindung zur Datenbank!
    "; }
    
    ?>

  • #2
    es wäre immer sinnvoll auch die fehlermeldung von mysql_error() mit anzugeben, weil da meistens sehr hilfreichte texte drin stehen.


    geb einfach mal ganz unten ein:

    Code:
    echo mysql_error();
    dann kann dir diese ausgabe vielleichjt auch selber helfen den fehler zu finden

    Kommentar


    • #3
      Hallo,

      Ich habe den Code beigefügt, leider kommt bei mir kein weiterer Text dabei! Mache ich etwas falsch?

      Ich bin halt ein PHP-Noob, eventuell hab ich halt nur nen Denkfehler!

      Normalerweise müsste mir doch mein Skript laufen, oder? Ich lasse das ganze Skript laufen ohne die While-Schleife(hab es auskommentiert) und es funktionert.

      Wer kann mir sagen, was ich bei der While Schleife falsch mache? Die mysql_fetch_row() funktion gehört doch zum normalen PHP-Syntax. Worin liegt das Problem? Vielleicht bei der Select anweisung? Muss ich etwa den menuepunkt1 als Zeichenkette a la "menupunkt1" schreiben?

      Kommentar


      • #4
        versuch mal menuepunkt1 in einfachen Hochkommatas. Also 'menuepunkt1'.

        was soll das "datei" eigentlic him sql query ? und warum kommt zuerst die abfrage und dann die verbindung ?

        Kommentar


        • #5
          generell zu häufig auftretenden fehlermeldungen ..
          http://www.php-faq.de/ch/ch-errors.html
          [b][url=http://www.benjamin-klaile.de]privater Blog[/url][/b]

          Kommentar


          • #6
            http://ch2.php.net/mysql_query
            Und wenn du
            Code:
            mysql_query("datei", $query, $verbindung) or die(mysql_error());
            schreibst, erhälst du in deinem Fall eine Fehlermeldung. Und wenn du in deiner php.ini error_reporting = E_ALL steht, erhälst du schon vorher die Meldung
            Warning: Wrong parameter count for mysql_query() in ....
            Gruss
            L

            Kommentar


            • #7
              @lazydog:

              meine php.ini ist so wie du geschrieben hast konfiguriert. Und trotzdem bekomme ich keine Fehlermeldung, wie du sie meintest, sondern halt:

              Code:
              Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\apachefriends\xampp\htdocs\qmh\menue1.php on line 28
              @Ben:
              Vielen Dank für den Link! Somit weiss ich jetzt, das mein gesendeter Query ungültig oder syntaktisch falsch ist. Damit bin ich auf dem richtigen Weg, muss nur ausknobeln, wie ich hinkomme!


              @Triple-T:
              Das "datei" ist der Name der Datenbank, die auf dem Server angesprochen werden soll. Warum die Abfrage und danach die Verbindung kommt? Nun, diese Reihenfolge habe ich aus meinem PHP-Benutzerhandbuch, dort steht das man folgende Syntax benutzen kann:

              Code:
              int mysql_query (string Anfrage [, Verbindungskennung])
              Aber von der gewünschten Datenbank steht da nix so drin, ich glaube, das war mein Fehler!


              Vielen Dank für die Infos, ich werde jetzt mal ausknobeln, wie ich meine Fehler ausbügle( die richtige Selectanweisung zusammenstricken und richtig absenden!).

              Kommentar


              • #8
                Zitat von Dennis
                Und trotzdem bekomme ich keine Fehlermeldung, wie du sie meintest,
                Die bekommst Du deshalb nicht, weil Du sie mit dem @ ausgeschaltet hast.

                Code:
                resource mysql_query ( string Anfrage [, resource Verbindungs-Kennung])
                Die Funktion erwartet 2 und nicht 3 Parameter

                Kommentar


                • #9
                  Jepp, das hatte ich auch schon begriffen, nachdem ich nochmal in Handbuch nachgeschlagen hatte und es aufmerksam durchgelesen hatte.


                  Hab bei mir vorhin phpMyAdmin ausprobiert und hab mir die nötigen passende Select-Anweisung und den dazu passenden php-Code erzeugt


                  Folgende Anweisung lasse ich durchführen;
                  Code:
                  SELECT `begriff` 
                  FROM `menue` 
                  WHERE `menue-bez` = "menuepunkt1" LIMIT 0 , 30
                  Der dazu passeende php-code
                  Code:
                  $sql = 'SELECT `begriff` '
                          . ' FROM `menue` '
                          . ' WHERE `menue-bez` = "menuepunkt1" LIMIT 0, 30';
                  Jetzt gibt er mir folgende Fehlermeldung aus:
                  Code:
                  No Database Selected
                  Und das, obwohl ich mit folgender Anweisung doch die Datenbank selected hab:


                  Code:
                  mysql_select_db("datei");

                  Kommentar


                  • #10
                    Zitat von Dennis
                    Und das, obwohl ich mit folgender Anweisung doch die Datenbank selected hab:


                    Code:
                    mysql_select_db("datei");
                    zeigen ..
                    [b][url=http://www.benjamin-klaile.de]privater Blog[/url][/b]

                    Kommentar


                    • #11
                      Ich habs jetzt.

                      Nachdem ich gestern und heute morgen ein bisserl die Datenbank umgestrickt habe (damit mysql nicht wegen reservierter Wörter nervt, hab ich folgendes Skript geschreiben und siehe da, es funktioniert!

                      Code:
                         $verbindung=@mysql_connect("localhost","root","");
                      
                          if($verbindung) {
                          @mysql_select_db("menueverwaltung");  
                      
                          $sql = 'SELECT `Menue-punkt` '
                              . ' FROM `menue` '
                              . ' WHERE `menue-bez` = "menuepunkt1" LIMIT 0, 30';
                      
                          $result = @MYSQL_QUERY($sql);
                          while (list($begriff)= mysql_fetch_row($result)){
                          echo "<div align=`right`><a href =`titel.htm` target=`daten`>$begriff</div></a>";
                          }
                          echo mysql_error();
                          mysql_close($verbindung);
                      
                          } else {
                          echo "Keine Verbindung zur Datenbank!
                      "; }
                      ?>
                      Ich schätze mal, das mein Problem mit dem Selektieren der Datenbank war, das ich beim abschicken der SQL-Anweisung nochmals die Verbindungkennung angegeben habe. Somit wurde die verbindung nochmals zu MySQL aufgebaut, aber nicht nochmal die passende Datenbank gewählt (das hatte ich ja bei meinem letzen Skript vor dem zusammenstellen der SQL-Anweisung gemacht (kann man ja oben beim nächsten Skript sehen).


                      Aber jetzt sind meine Probleme gelöst, vielen Dank nochmals für die zahlreiche Unterstützung!

                      Kommentar

                      Lädt...
                      X