Spalten addieren und dann danach sortieren

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

  • Spalten addieren und dann danach sortieren

    Hi !!!

    Vorneweg, was Datenbanken anbelangt bin ich ein blutiger Anfänger ...

    Ich habe eine Tabelle (login), in der ich u.a. vier Spalten (Logins, Mails, Foreneintraege, GBeintraege) habe, die addiert einen Wert ergeben. Nach diesem Wert will ich dann die Ausgabe sortieren.

    SELECT * FROM login ORDER BY SUM(Logins, Mails, Foreneintraege, GBeintraege) geht aber nicht ... Ist wahrscheinlich sogar megatotalfalsch ...

    Nun habe ich viel über Sum gelesen und festgestellt, daß ich wohl irgendwo etwas mit Group By machen müßte ... wie das aber nun genau geht - ich verzweifle ;-)
    Yeah !

  • #2
    Code:
    SELECT
     SUM(logins,  mails) anzahl, userid
    FROM
      logintabelle
    GROUP BY
      userid
    ORDER BY
      anzahl DESC
    so?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Ist Anzahl denn dann das Ergebnis von Sum ?

      Dann wäre das wahrscheinlich genau das, was ich brauche ...
      Yeah !

      Kommentar


      • #4
        Original geschrieben von DaGuertliz
        Ist Anzahl denn dann das Ergebnis von Sum ?
        probier es aus, anstattt zu fragen.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          PHP-Code:
          $temp=    "SELECT";
          $temp.=    " SUM(logins, mails, gbposts, foreneintraege) anzahl, user_id,";
          $temp.=    " FROM";
          $temp.=    " logintabelle";
          $temp.=    " GROUP BY";
          $temp.=    " user_id";
          $temp.=   " ORDER BY";
          $temp.=    " anzahl DESC";
          $erg=mysql_query($temp);
          while(
          $row=mysql_fetch_object($erg)){
              echo 
          $row -> user_id;

          gibt folgende Fehlermeldung aus:

          Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in m:\homepages\catworking\wd\helden.php on line 25

          PS: Line 25 ist die, in der die While-Schleife startet ...
          Yeah !

          Kommentar


          • #6
            wie wärs mit mysql_error()?

            OffTopic:
            immer das gleiche

            Kommentar


            • #7
              You have an error in your SQL syntax near ' foreneintraege, mails, logins) anzahl, user_id, FROM login GROUP BY user_id ORD' at line 1
              Yeah !

              Kommentar


              • #8
                kannse mal sehen. den ausgebessert und alles läuft.

                Kommentar


                • #9
                  Hast Du denn ne Ahnung, wo der Fehler liegen könnte? Habe jetzt alles zehn mal überprüft - alles ist richtig geschrieben, aber funktionieren tuts trotzdem nicht ...

                  Muß

                  "Anzahl"

                  denn ein Ausdruck sein, der in der Tabelle vorkommt oder muß ich da vielleicht ein "as" davorschreiben ?!?
                  Yeah !

                  Kommentar


                  • #10
                    as kannst du ruhig weglassen.

                    evtl überprüfst du nocheinmal. es ist definitiv ein fehler enthalten.

                    woher soll ich aber wissen, wo der ist? ich weiß nicht, wie dein query aussieht.,

                    Kommentar


                    • #11
                      PHP-Code:
                      $temp=    "SELECT SUM (gbposts, foreneintraege, mails, logins) punkte, user_id";  
                      // das sind bis auf "punkte" alles Spalten, die es in der Tabelle login gibt ...
                      $temp.=    " FROM";
                      $temp.=    " login"
                      $temp.=    " GROUP BY";
                      $temp.=    " user_id";
                      $temp.=   " ORDER BY";
                      $temp.=   " punkte DESC";
                      $erg=mysql_query($temp);
                      while(
                      $row=mysql_fetch_object($erg)){
                          echo 
                      $row -> user_id;
                      }
                      echo 
                      mysql_error(); 
                      ergibt folgendes ergebnis:

                      Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in m:\homepages\catworking\wd\helden.php on line 25
                      You have an error in your SQL syntax near '(gbposts, foreneintraege, mails, logins) punkte, user_id FROM login GROUP BY use' at line 1

                      Ich dreh hier durch ... Habe alles versucht, aber den Fehler nicht gefunden *seufz* Vielleicht hat ja doch noch einer einen Tip ...
                      Yeah !

                      Kommentar


                      • #12
                        hast du auch mal versucht den komplketten query, das heißt so wie er an die db gesendet wird auszugeben. dein php-code interessiert mich (mit den ganzen variablen) recht wenig.

                        EDIT:
                        sum hat nur einen parameter (die spalte, die du addieren willst), du versuchst mehrere spalten miteinander zu addieren.
                        Zuletzt geändert von TobiaZ; 14.12.2003, 13:06.

                        Kommentar


                        • #13
                          du brauchst SUM um werte aus mehreren zeilen zu addieren
                          Code:
                          SELECT
                           (gbposts + foreneintraege + mails + logins) anzahl,
                           userid
                          FROM
                            tabelle
                          ORDER BY
                            anzahl DESC
                          sollte gehen
                          Ich denke, also bin ich. - Einige sind trotzdem...

                          Kommentar


                          • #14
                            SELECT SUM (gbposts, foreneintraege, mails, logins) punkte, user_id FROM login GROUP BY user_id ORDER BY punkte DESC

                            EDIT:
                            Achso? Kann ich denn vier Werte miteinander addieren, ohne drei Abfragen loszulassen?
                            Zuletzt geändert von DaGuertliz; 14.12.2003, 13:10.
                            Yeah !

                            Kommentar


                            • #15
                              jupp, geht ala Happy.

                              Kommentar

                              Lädt...
                              X