kleines Problemm bei meiner Topliste.

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

  • kleines Problemm bei meiner Topliste.

    Hallo zusammen,

    habe kleines Problemchen mit meiner Topliste, also wenn ein User eingeloggt ist dann Zeigt die liste so wie ich es wollte! Aber wenn User nicht eingeloggt ist und geht auf die liste dann wird so ein fehler angezeigt: "Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /www/...online6"
    also die Zeile 6 ist irgendwie falsch!
    und hier ist die aus PHP:
    "$punkte=mysql_fetch_object(mysql_query("SELECT punkte_ges FROM profil WHERE id=$user_id"));"
    Ich vermutte, dass ich was bei bzw nach "SELECT" schreiben soll, aber weiß nicht was genau! Habe schon bei google und co. geguckt nichts passendes gefunden! Würde mich über eure Hilfe sehr freuen.

    Gruß

  • #2
    Wenn kein User eingeloggt ist, was ist dann $user_id?

    Kommentar


    • #3
      Zitat von onemorenerd Beitrag anzeigen
      Wenn kein User eingeloggt ist, was ist dann $user_id?

      na id ist doch wenn User eingelogt ist!? oder...

      eigentlich funktioniert alles sowie ich will nur mich stört halt wenn User nicht eingelogt ist dann wird diese DB Fehler angezeigt!:
      PHP-Code:
      Warning:  mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /www/htdocs/toptop/top.php on line 6 

      Kommentar


      • #4
        Zitat von Ri4i Beitrag anzeigen
        na id ist doch wenn User eingelogt ist!? oder...
        Die Frage war, was diese Variable enthält, wenn der Nutzer nicht eingeloggt ist.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Jetzt denk doch mal logisch. Wenn der User nicht eingeloggt ist, gibt es keine ID. Und wie sieht dann dein SQL-Statement aus? So:
          PHP-Code:
          SELECT punkte_ges FROM profil WHERE id
          Und das ist ein Syntax-Fehler!

          Bau mal folgenden Code ein, dann siehst du es:
          PHP-Code:
          $res mysql_query("SELECT punkte_ges FROM profil WHERE id=$user_id") or die(mysql_error()); 
          Peter
          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
          Meine Seite

          Kommentar


          • #6
            Zitat von Ri4i Beitrag anzeigen
            ... "Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /www/...online6"
            also die Zeile 6 ist irgendwie falsch!
            und hier ist die aus PHP:

            PHP-Code:
            $punkte=mysql_fetch_object(mysql_query("SELECT punkte_ges FROM profil WHERE id=$user_id")); 
            Ich vermutte, dass ich was bei bzw nach "SELECT" schreiben soll, aber weiß nicht was genau!
            Falsch vermutet. Was lernen wir als erstes im Grundkurs Programmieren? Dass das Ergebnis einer Funktion auf Gültigkeit überprüft werden muss, bevor wir es der nächsten Funktion in den Hals stopfen. Also:

            PHP-Code:
            $result mysql_query("SELECT punkte_ges FROM profil WHERE id=$user_id");

            if (!
            is_resource($result)) {
                die(
            'Sch#@*, hat nicht geklappt');
            }
            $fo mysql_fetch_object($result); 
            Die gleiche Vorgehensweise ist vor dem Aufruf von mysql_query() zu empfehlen. Du übergibst einen String, der die Variable $user_id auswertet. Wenn die einen unbrauchbaren Wert enthält oder gar nicht existiert, wird die als Leerstring "''" in deine(n) Query eingesetzt. Dann ist es auch kein Wunder, wenn mysql_query() kein Result-Set zurückgibt, sondern FALSE.
            Zuletzt geändert von fireweasel; 25.10.2009, 18:13.
            Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

            Kommentar


            • #7
              Leute ist doch alles das selbe. habe auch Probiert!

              hier ist das ganze:
              PHP-Code:
              $punkte=mysql_fetch_object(mysql_query("SELECT punkte_ges FROM profil WHERE id=$user_id"));
              if(
              $punkte->punkte_ges>=39500$zahl=" LIMIT 100";
              elseif(
              $punkte->punkte_ges>=29500$zahl=" LIMIT 30";
              elseif(
              $punkte->punkte_ges>=19500$zahl=" LIMIT 28"
              elseif(
              $punkte->punkte_ges>=9300$zahl=" LIMIT 26";
              elseif(
              $punkte->punkte_ges>=9300$zahl=" LIMIT 24";
              elseif(
              $punkte->punkte_ges>=5500$zahl=" LIMIT 22";
              elseif(
              $punkte->punkte_ges>=5000$zahl=" LIMIT 20";
              elseif(
              $punkte->punkte_ges>=2200$zahl=" LIMIT 18";
              elseif(
              $punkte->punkte_ges>=2200$zahl=" LIMIT 16";
              elseif(
              $punkte->punkte_ges>=500$zahl=" LIMIT 14";
              elseif(
              $punkte->punkte_ges>=500$zahl=" LIMIT 12";
              elseif(
              $punkte->punkte_ges>=0$zahl=" LIMIT 10";
              }
              if (!isset(
              $user_id)) $zahl=" LIMIT 10";
              $top=mysql_query("SELECT * FROM `foto`, `profil` WHERE profil.id=foto.user_id AND profil.************=$************ AND foto.vote>=100 AND foto.status=1 ORDER BY prozent DESC $zahl");
              ?> 
              Wie kann ich denn diese fehler weg machen? sorry habe vielleicht nicht verstanden was sie genau meinen

              Kommentar


              • #8
                Zitat von Ri4i Beitrag anzeigen
                habe auch Probiert!
                Aber nicht logisch ...

                PHP-Code:
                if (!isset($user_id)) $zahl=" LIMIT 10";
                $top=mysql_query("SELECT ..."); 
                Wieso verwendest du die Variable $user_id vor diesen Zeilen schon - wenn du erst hier überprüfst, ob es sie überhaupt gibt?
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Zitat von wahsaga Beitrag anzeigen
                  Aber nicht logisch ...

                  PHP-Code:
                  if (!isset($user_id)) $zahl=" LIMIT 10";
                  $top=mysql_query("SELECT ..."); 
                  Wieso verwendest du die Variable $user_id vor diesen Zeilen schon - wenn du erst hier überprüfst, ob es sie überhaupt gibt?
                  hmm irgendwas mache ich walsch! kommt immer selbe Ergebniss oder es geht garnix!

                  könnt mir vielleicht genaueren tipp geben

                  Kommentar


                  • #10
                    Zitat von Ri4i Beitrag anzeigen
                    könnt mir vielleicht genaueren tipp geben
                    Hier gibt es nur Hilfe zur Selbsthilfe. Und keinen fertigen Code. Beherzige diese Ratschläge und du wirst den Fehler selber finden. Oder aber auf Ungereimten stoßen, bei denen wir dir gerne weiterhelfen.

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

                    Kommentar


                    • #11
                      Zitat von Kropff Beitrag anzeigen
                      Hier gibt es nur Hilfe zur Selbsthilfe. Und keinen fertigen Code. Beherzige diese Ratschläge und du wirst den Fehler selber finden. Oder aber auf Ungereimten stoßen, bei denen wir dir gerne weiterhelfen.

                      Peter
                      hier Peter,

                      wenn ich mein Problemm selber finden will, dann benutze ich google! Das habe ich, das hat mir aber nicht weiter geholfen! Darum muss ich hier fragen! Wenn du nicht helfen willst dann las es! Verarschen kann ich mich auch selber!

                      Und was meinst du mit "Ungereimten stoßen"? Vielleicht habe ich mich Falsch ausgedruckt! Sorry. Das ist auch meine Ungereimtheit! Ich habe ja geschrieben wo ich fehler vermutte, und durch euren Antworten hat das sich hier bestätigt! Schööön)))

                      Das hat aber mein Fehler nicht weg gemacht! Ich habe ja auch versucht umzuschreiben, wird aber nicht besser! Bitte euch mir weiter zu helfen!

                      Kommentar


                      • #12
                        Zitat von Ri4i Beitrag anzeigen
                        wenn ich mein Problemm selber finden will, dann benutze ich google! Das habe ich, das hat mir aber nicht weiter geholfen! Darum muss ich hier fragen! Wenn du nicht helfen willst dann las es! Verarschen kann ich mich auch selber!
                        Verwarn! Noch so eine Entgleisung und du bist weg vom Fenster.
                        Zitat von Ri4i Beitrag anzeigen
                        Und was meinst du mit "Ungereimten stoßen"? Vielleicht habe ich mich Falsch ausgedruckt! Sorry. Das ist auch meine Ungereimtheit! Ich habe ja geschrieben wo ich fehler vermutte, und durch euren Antworten hat das sich hier bestätigt! Schööön)))
                        Und wie sehen deine Versuche aus? Testausgaben? So wie ich es beschrieben habe? Wahrscheinlich nicht. Und wie ich schon sagte, fertigen Code gibst es hier nicht!

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

                        Kommentar


                        • #13
                          Wenn du die Variable $user_id benutzt, um etwas aus der mysql datenbank abzufragen, so MUSS die Variable $user_id aber auch etwas beinhalten !
                          Ist der User eingeloggt, so beinhaltet die Variable die Userid (z.B. "20")
                          Ist der User aber NICHT eingeloggt, so beinhaltet die Variable $user_id nichts.
                          Die ist dann ja leer.

                          Und da die Variable leer ist, gibt es bei der mysql Abfrage einen Syntaxfehler.
                          PHP-Code:
                          $punkte=mysql_fetch_object(mysql_query("SELECT punkte_ges FROM profil WHERE id=$user_id")); 
                          Darum solltest du prüfen ob $user_id gefüllt ist.
                          Und das bitte VOR jegleicher Verwendung.
                          z.B. so:

                          PHP-Code:
                          if(isset($user_id) === true) {
                              
                          $punkte mysql_fetch_object(mysql_query("    SELECT
                                                                              punkte_ges
                                                                          FROM
                                                                              profil
                                                                          WHERE 
                                                                              id=
                          $user_id"));
                                                                              
                              if(
                          $punkte->punkte_ges>=39500$zahl=" LIMIT 100";
                              elseif(
                          $punkte->punkte_ges>=29500$zahl=" LIMIT 30";
                              elseif(
                          $punkte->punkte_ges>=19500$zahl=" LIMIT 28"
                              elseif(
                          $punkte->punkte_ges>=9300$zahl=" LIMIT 26";
                              elseif(
                          $punkte->punkte_ges>=9300$zahl=" LIMIT 24";
                              elseif(
                          $punkte->punkte_ges>=5500$zahl=" LIMIT 22";
                              elseif(
                          $punkte->punkte_ges>=5000$zahl=" LIMIT 20";
                              elseif(
                          $punkte->punkte_ges>=2200$zahl=" LIMIT 18";
                              elseif(
                          $punkte->punkte_ges>=2200$zahl=" LIMIT 16";
                              elseif(
                          $punkte->punkte_ges>=500$zahl=" LIMIT 14";
                              elseif(
                          $punkte->punkte_ges>=500$zahl=" LIMIT 12";
                              elseif(
                          $punkte->punkte_ges>=0$zahl=" LIMIT 10";
                          } else {
                              
                          $zahl " LIMIT 10";
                              
                          $top mysql_query("SELECT
                                                      *
                                                  FROM
                                                      `foto`,
                                                      `profil`
                                                  WHERE
                                                      profil.id = foto.user_id
                                                  AND
                                                      profil.************=$************
                                                  AND
                                                      foto.vote>=100
                                                  AND
                                                      foto.status=1
                                                  ORDER BY
                                                      prozent
                                                  DESC 
                          $zahl");

                          Dazu noch:
                          SELECT * ist nicht so das Gelbe vom Ei.

                          Kommentar


                          • #14
                            Zitat von Kropff Beitrag anzeigen
                            Verwarn! Noch so eine Entgleisung und du bist weg vom Fenster.

                            Und wie sehen deine Versuche aus? Testausgaben? So wie ich es beschrieben habe? Wahrscheinlich nicht. Und wie ich schon sagte, fertigen Code gibst es hier nicht!

                            Peter
                            Zitat von phpMorpheus2 Beitrag anzeigen
                            Wenn du die Variable $user_id benutzt, um etwas aus der mysql datenbank abzufragen, so MUSS die Variable $user_id aber auch etwas beinhalten !
                            Ist der User eingeloggt, so beinhaltet die Variable die Userid (z.B. "20")
                            Ist der User aber NICHT eingeloggt, so beinhaltet die Variable $user_id nichts.
                            Die ist dann ja leer.

                            Und da die Variable leer ist, gibt es bei der mysql Abfrage einen Syntaxfehler.
                            PHP-Code:
                            $punkte=mysql_fetch_object(mysql_query("SELECT punkte_ges FROM profil WHERE id=$user_id")); 
                            Darum solltest du prüfen ob $user_id gefüllt ist.
                            Und das bitte VOR jegleicher Verwendung.
                            z.B. so:

                            PHP-Code:
                            if(isset($user_id) === true) {
                                
                            $punkte mysql_fetch_object(mysql_query("    SELECT
                                                                                punkte_ges
                                                                            FROM
                                                                                profil
                                                                            WHERE 
                                                                                id=
                            $user_id"));
                                                                                
                                if(
                            $punkte->punkte_ges>=39500$zahl=" LIMIT 100";
                                elseif(
                            $punkte->punkte_ges>=29500$zahl=" LIMIT 30";
                                elseif(
                            $punkte->punkte_ges>=19500$zahl=" LIMIT 28"
                                elseif(
                            $punkte->punkte_ges>=9300$zahl=" LIMIT 26";
                                elseif(
                            $punkte->punkte_ges>=9300$zahl=" LIMIT 24";
                                elseif(
                            $punkte->punkte_ges>=5500$zahl=" LIMIT 22";
                                elseif(
                            $punkte->punkte_ges>=5000$zahl=" LIMIT 20";
                                elseif(
                            $punkte->punkte_ges>=2200$zahl=" LIMIT 18";
                                elseif(
                            $punkte->punkte_ges>=2200$zahl=" LIMIT 16";
                                elseif(
                            $punkte->punkte_ges>=500$zahl=" LIMIT 14";
                                elseif(
                            $punkte->punkte_ges>=500$zahl=" LIMIT 12";
                                elseif(
                            $punkte->punkte_ges>=0$zahl=" LIMIT 10";
                            } else {
                                
                            $zahl " LIMIT 10";
                                
                            $top mysql_query("SELECT
                                                        *
                                                    FROM
                                                        `foto`,
                                                        `profil`
                                                    WHERE
                                                        profil.id = foto.user_id
                                                    AND
                                                        profil.************=$************
                                                    AND
                                                        foto.vote>=100
                                                    AND
                                                        foto.status=1
                                                    ORDER BY
                                                        prozent
                                                    DESC 
                            $zahl");

                            Dazu noch:
                            SELECT * ist nicht so das Gelbe vom Ei.
                            oh leute habe das hinbekommen, war eigentlich ganz einfach, ich glaube war nur übermüdet!

                            musste gleich nachm header das da einfügen:
                            PHP-Code:
                            if (isset($user_id)) 
                            und dann nach } das da:
                            if (!isset($user_id)) $zahl=" LIMIT 10";

                            Danke euch, hätte eigentlich selber hinbekommen! Und Kropff sei mir bitte nicht sauer! so kammst mir einfach rüber!

                            Gruß

                            Kommentar

                            Lädt...
                            X