mysql Ausgabe problem, supplied argument is not a valid MySQL result

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

  • #16
    Hat das überhaupt etwas damit zu tun:
    das nicht, das kommt später auf dich zu, wenn du das live stellst. aber der andere link auf jeden fall, denn ich habe bei dem tutorial über die fehlersuche ausdrücklich(!!!) darauf hingewiesen, dass hinter jeder mysql-sache ein or die (mysql_error()) stehen sollte! also auch bei mysql_connect und mysql_select_db.

    Dies Forum ist doch dazu da um anderen zu helfen. Also denen zu sagen was genau der Fehler ist wenn die nicht mehr weiter wissen wenn es nicht klappt mit dem was in tutorials ist.
    das setzt aber das elementare basiswissen vorraus, inkl. eines vernünftigen debuggings. wir geben hier keine lösungen, sondern nur hinweise. vielleicht solltest du dir erst mal die mühe, dir die grundlagen anzueignen. und dafür ist mein auftritt gedacht. setzt allerdings einiges an zeit vorraus, aber die muss man halt investieren. glaubst du denn, ich hätte das alles von heute auf morgen gelernt?

    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #17
      Man sieht doch auf den ersten Blick den Fehler bei der Verwendung der $input-Variablen in der 2. Zeile?!
      Hast du keinen Editor mit Syntax-Highlighting?
      Guck halt hier im Forum und vergleich es mit 5 Zeilen tiefer oder so, wo du auch die $input-Variable in den String eingebaut hast.

      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
      Wie man Fragen richtig stellt

      Kommentar


      • #18
        Ich Nutze wie für mein html code nur notepad und kein extra programm. Nein das war kein Witz.
        Gibt es ein einfaches prog. was z.b. immer irgend wo anzeigt in welcher zeile man sich befindet?
        Naja und am besten dann auch gleich ob die zeile richtig ist *g*
        ich hasse das abzählen der zeilen....




        was macht den da ein weiterer punkt an der stelle.
        Habe die obere zeile aus einem fertig script kopiert, scheinbar war das script somit garnicht funktionstüchtig.
        Dachte es müßte wohl so weil da ein * drin ist im select.

        Verstehe sowieso leider nicht warum da ein . vor soll und es nach dem " stehen muss.
        Aber nun ja, muss wohl so sein.

        Habe es nun ersetzt.


        Peter ist nun hoffentlich auch zufrieden das dafür auch ein mysql error gesetzt ist?^^


        Habe leider immer noch den ursprünglichen Fehler

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

        Ich möchte eigentlich wissen ob der wert $input in der $dbsuchspalte vorhanden ist. Wenn er es nicht ist, soll der befehl ausgeführt werden.


        PHP-Code:
        $sql_checkbefehl="SELECT * FROM $dbtable WHERE $dbsuchspalte =" $input;
        $sql_befehl="SELECT $ausgabespaltename1$ausgabespaltename2$ausgabespaltename3$ausgabespaltename4 FROM $dbtable WHERE $dbsuchspalte = " $input;
        $ergebnis=mysql_query($sql_befehl,$dbconnect) OR die(mysql_error());




        if (
        mysql_num_rows($sql_checkbefehl) OR die(mysql_error())==0)
        {
        und hier was er dann machen soll wenn nicht gefunden

        Und dann was er ansonsten machen soll wenn der wert vorhanden ist.



        Jemand eine bessere idee wie das gehen soll?

        Gruss Stefan

        Kommentar


        • #19
          Zitat von thx-sound Beitrag anzeigen
          Ich Nutze wie für mein html code nur notepad und kein extra programm. Nein das war kein Witz.
          Gibt es ein einfaches prog. was z.b. immer irgend wo anzeigt in welcher zeile man sich befindet?
          Naja und am besten dann auch gleich ob die zeile richtig ist *g*
          ich hasse das abzählen der zeilen....
          Notepad++ zum Beispiel.

          Kommentar


          • #20
            PHP-Code:
            mysql_num_rows($sql_checkbefehl
            mysql_num_rows erwartet als parameter eine mysql-resource, keinen sql-query! und in welcher variable steckt deine resource? genau!

            peter
            Zuletzt geändert von Kropff; 27.05.2009, 14:31.
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #21
              so nun dummer umtausch fehler.


              also muss es so sein:

              PHP-Code:
              $sql_checkbefehl="SELECT * FROM $dbtable WHERE $dbsuchspalte =" $input;
              $sql_befehl="SELECT $ausgabespaltename1$ausgabespaltename2$ausgabespaltename3$ausgabespaltename4 FROM $dbtable WHERE $dbsuchspalte = " $input;
              $checkergebnis=mysql_query($sql_checkbefehl,$dbconnect) OR die(mysql_error());
              $ergebnis=mysql_query($sql_befehl,$dbconnect) OR die(mysql_error());




              if (
              mysql_num_rows($checkergebnis) OR die(mysql_error())==0)
                  {
              header ("Content-type: image/png");
              imagefilledrectangle ($bildgroesse00$bildbreite$bildhoehe$hintergrund_farbefehler);
              imagestring ($bildgroesse$textnr$textp21$keininput$text_farbe1);
              imagepng ($bildgroesse);
                  }

              else
                   {  
              while(
              $satz mysql_fetch_array($ergebnis))
              {
                 
              $ausgabe1 =($satz[$ausgabespaltename1]);
                 
              $ausgabe2 =($satz[$ausgabespaltename2]);
                 
              $ausgabe3 =($satz[$ausgabespaltename3]);
                 
              $ausgabe4 =($satz[$ausgabespaltename4]);
              }  
              header ("Content-type: image/png");
              imagefilledrectangle ($bildgroesse00$bildbreite$bildhoehe$hintergrund_farbe);
              imagestring ($bildgroesse$textnr$textp21$ausgabe1$text_farbe2);
              imagestring ($bildgroesse$textnr$textp31$anfang$text_farbe3);
              imagestring ($bildgroesse$textnr$textp41$ausgabe2$text_farbe4);
              imagestring ($bildgroesse$textnr$textp51$trenner$text_farbe5);
              imagestring ($bildgroesse$textnr$textp61$ausgabe3$text_farbe6);
              imagestring ($bildgroesse$textnr$textp71$trenner2$text_farbe7);
              imagestring ($bildgroesse$textnr$textp81$ausgabe4$text_farbe8);
              imagestring ($bildgroesse$textnr$textp91$ende$text_farbe9);



                   } 


              Leider scheint die if funktion aber nicht richtig zu gehen.

              Die Abfrage ist aber nun korrekt?

              Wenn ich ein existierenden Wert angebe, erscheint immernoch nur das was raus soll wenn es nicht vorhanden ist.

              Kommentar


              • #22
                welchen wert soll den $input haben? das hast du uns bisher vorenthalten. hast du dir mal die querries per echo ausgeben lassen und in einem mysql-frontend getestet? mittlerweile ist da wohl ein reines php-problem, daher verschieb ich das mal. umd * move *

                peter
                Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                Meine Seite

                Kommentar


                • #23
                  Das or die() in der if-Bedingung brauchst du nicht und die zweite Query solltest du erst im else-Block absetzen.
                  Die while-Schleife ist sinnlos. Entweder hast du nur einen Treffer in der DB oder du bekommst eh nur den letzten, da in der Schleife die Variablen immer wieder überschrieben werden.

                  Kommentar


                  • #24
                    Zitat von onemorenerd Beitrag anzeigen
                    Das or die() in der if-Bedingung brauchst du nicht
                    Habe ich da rein gesetzt um peter zufrieden zu stellen

                    Zitat von onemorenerd Beitrag anzeigen
                    und die zweite Query solltest du erst im else-Block absetzen.
                    Verstehe ich nicht. Es ist doch egal wo ich $ergebnis plaziere da es doch sowieso erst in der else bei der while-Schleife eingesetzt wird


                    Zitat von onemorenerd Beitrag anzeigen
                    Die while-Schleife ist sinnlos. Entweder hast du nur einen Treffer in der DB oder du bekommst eh nur den letzten, da in der Schleife die Variablen immer wieder überschrieben werden.
                    Und Warum werden dann KORREKT die 4 gewünschten Wrte damit ausgegeben wenn ich das if & else weg lasse und mich aufs wesentliche konzentriere?
                    Diese 4 Werte sollen bei existierender usernummer in die Ziel Grafik. ansonsten soll durch die obiege abfrage nur eine fehlermeldung als Grafik ausgegeben werden

                    Das script funktionierta ja, nur ich wollte da was einsetzen damit eine für den Aufrufer nachfolziebare fehlermeldung kommt wenn ein nich existierender Wert übergeben wird.

                    Evtl. ist es dir etwas zu undurchsichtig da ich lauter &ausgabespaltename gemacht habe
                    In der While-Schleife wird anders selectiert.
                    Die 4 stück sind weiter oben namentlich defeniert.
                    Habe ich so gemacht, damit ich das nicht mehrfach abändern muss wenn ich mal was ändere.




                    @Kropff

                    Im $input (den ich so genannt habe falls ich später mal ein anderen eingangswert dort plazieren möchte) wird der übergebene wert für "user" eingetragen.
                    PHP-Code:
                    $input "$user"
                    Oder müssen dafür irgendwelche . oder ( plaziert werden?
                    bessser so?
                    PHP-Code:
                    $input ".$user"
                    Ist leider sehr undurchsichtig ob da ein punkt oder klammer in so einem fall gesetzt werden muss/soll.

                    Der Aufruf ist dann dateiname.php?user=821
                    für den user nr. 821

                    Nein habe schon lange kein echo mehr ausgeben lassen.
                    Was ist ein mysql-frontend?



                    @PHP-Desaster: Danke für notepad++


                    Noch eine kurze Frage:
                    Sehe ich es richtig, dass wenn ich bei der Wert Überprüfung im select den * (der wohl zum durchsuchen sämtlicher spalten dient) durch den spaltenname ersetzte wo dieser Wert stehen muss auch dann nur in dieser einen spalte gesucht wird?
                    Ansonsten kann es nämlich probleme geben wenn ein User eine Zahl im usernamen hat und was nich viel fataler ist: wenn der userwert so nidrig ist das es einen der anderen 3 zahlenwerte trifft.
                    Zuletzt geändert von thx-sound; 27.05.2009, 17:06.

                    Kommentar


                    • #25
                      das ist tinnef
                      PHP-Code:
                      $input "$user"
                      das schon besser
                      PHP-Code:
                      $input $user
                      und das ist die richtige variante
                      PHP-Code:
                      $input $_GET['user']; 
                      Nein habe schon lange kein echo mehr ausgeben lassen.
                      sollte man von zeit zu zeit mal machen.
                      Was ist ein mysql-frontend?
                      eine graphische oberfläche, mit der man direkt auf die datenbank zugreifen kann. z.b. phpmyadmin oder heidisql

                      peter
                      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                      Meine Seite

                      Kommentar


                      • #26
                        Zitat von thx-sound Beitrag anzeigen
                        Habe ich da rein gesetzt um peter zufrieden zu stellen
                        Aber an blödsinniger Stelle, und in blödsinniger Weise.

                        Zitat von onemorenerd
                        Die while-Schleife ist sinnlos. Entweder hast du nur einen Treffer in der DB oder du bekommst eh nur den letzten, da in der Schleife die Variablen immer wieder überschrieben werden.
                        Und Warum werden dann KORREKT die 4 gewünschten Wrte damit ausgegeben wenn ich das if & else weg lasse und mich aufs wesentliche konzentriere?
                        Weil du nicht zwischen Datensätzen und Tabellenfeldern zu unterscheiden in der Lage bist.

                        Du wertest nur einen Datensatz aus - deshalb ist die Schleife überflüssig, wie schon gesagt.
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #27
                          @peter

                          Danke für den korrekten input.
                          hoffe das ich dadurch jetzt nicht überall wo er eingestezt wird was ändern muss?
                          Also ich nehme den phpmyadmin den ich übers Kundenmenü von hoster bekomme.



                          @wahsaga:

                          ok also möchtest du das ich die while schleife genau an die stelle lieber in:
                          PHP-Code:
                          $ausgabe1 =(mysql_fetch_array($ergebnis)[$ausgabespaltename1]);
                          $ausgabe2 =(mysql_fetch_array($ergebnis)[$ausgabespaltename2]);
                          $ausgabe3 =(mysql_fetch_array($ergebnis)[$ausgabespaltename3]);
                          $ausgabe4 =(mysql_fetch_array($ergebnis)[$ausgabespaltename4]); 
                          ändere?
                          Oder ist das nun wieder inkorrekt mit den klammern?



                          Zu den Mysqlerrors:
                          Sage mir bitte welche davon blödsinnig sind und wo dieser eher nur hingehöhren.
                          Ich weiß es leider nicht Wollte nur peter zufrieden stellen


                          Ist das nun mit dem select * richtig was ich 2 post drüber gefragt habe?
                          Soll ich einfach den Name der Spalte wo der wert nur drin sein darf angeben?
                          Nicht das nacher dem befehl es zu wenig daten sind?
                          Zuletzt geändert von thx-sound; 27.05.2009, 17:44.

                          Kommentar


                          • #28
                            nicht raten, denken!
                            PHP-Code:
                            $satz mysql_fetch_array($ergebnis);
                            print_r($satz); 
                            und das schaust du dir mal genau an.

                            peter
                            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                            Meine Seite

                            Kommentar


                            • #29
                              Zitat von Kropff Beitrag anzeigen
                              nicht raten, denken!
                              PHP-Code:
                              $satz mysql_fetch_array($ergebnis);
                              print_r($satz); 
                              und das schaust du dir mal genau an.

                              peter
                              Ich nehme an ich soll das in extra datei inkl. dem mysql login und benötigten angaben machen?

                              habe ich mal gemacht:

                              Array ( [0] => Tsungam [username] => Tsungam [1] => 32 [positive] => 32 [2] => 0 [neutrale] => 0 [3] => 0 [negative] => 0 )

                              Wenn ich 821 als wert übergebe (ist einer der 5 einträge die bisher angelegt habe)
                              Zuletzt geändert von thx-sound; 27.05.2009, 18:19.

                              Kommentar


                              • #30
                                Ich nehme an ich soll das in extra datei inkl. dem mysql login und benötigten angaben machen?
                                wennn du das nicht weißt, wer von dann?
                                habe ich mal gemacht:
                                und jetzt? nun kannst du deine $ausgabe 1 - 4 mit den werten aus $satz füttern und das bild generieren. aber bitte ohne die klammern, die sind auch tinnef.

                                peter
                                Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                                Meine Seite

                                Kommentar

                                Lädt...
                                X