Sortierung

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

  • Sortierung

    Hallo Mitglieder,

    ich habe eine Tabelle in der ich verschiedene Werte (Punkte & Tore) habe, die unterschiedlichen Mannschaften zugeordnet werden.

    Wie kann ich die Werte in dieser Tabelle zusammenzählen (mit count oder sum) und dabei gleichzeitig die Tabelle, die dadurch entsteht, sortieren (von viel nach wenig Punkten & Toren) lassen?

    "Select ???
    from db
    where team=team
    order by ???"

    Vielen Dank für die Hilfe!

  • #2
    musst schon genauer angeben, wie deine tabelle aufgebaut ist, so kann man nur raten..
    ausserdem ab damit ins SQL forum
    meine Projekte bestaunen: http://www.kleiza.de

    Kommentar


    • #3
      Okay, also genauer:

      die Spalten der Tabelle "spielplan":

      spieltag, heimteam, gastteam, heimpunkte, gastpunkte, heimtore, gasttore

      Noch was?

      Kommentar


      • #4
        Eine Teillösung habe ich nun:

        "SELECT heimteam, SUM(heimpunkte) AS heimpunkte, SUM(heimtore) AS heimtore
        WHERE spieltag>a and spieltag<b
        GROUP BY heimteam
        ORDER BY heimpunkte DESC, heimtore DESC"

        Da die Mannschaften aber noch Auswärtspiele haben, würde ich dem Team gerne auch die AUswärtspunkte zugestehen. Wie bekomme ich das noch in diesen select-Befehl rein?

        Kommentar


        • #5
          WHERE spieltag>a and spieltag<b
          geht so schneller:
          WHERE spieltag between a and b

          PHP-Code:
          $teams = array();

          $sql "SELECT heimteam, SUM(heimpunkte) AS heimpunkte,
            SUM(heimtore) AS heimtore WHERE spieltag bwtween a and b
            GROUP BY heimteam ORDER BY heimpunkte DESC, heimtore DESC"
          $res mysql_query($sql);
          while (list (
          $tid$p$t) = mysql_fetch_row($res))
            
          $team[$tid] = array('id'=>$tid'punkte'=>$p'tore'=>$t);

          $sql "SELECT gastteam, SUM(gastpunkte) AS gastpunkte,
            SUM(gasttore) AS gasttore WHERE spieltag between a and b
            GROUP BY gastteam ORDER BY gastpunkte DESC, gasttore DESC"
          $res mysql_query($sql);
          while (list (
          $tid$p$t) = mysql_fetch_row($res))
            { 
          $team[$tid]['punkte'] += $p$team[$tid]['tore'] += $t }

          // sortieren:
          function mycmp ($a$b)
          {
            if (
          $c $a['punkte']-$b['punkte']) return $c;
            return 
          $a['tore']-$b['tore']);
          }
          usort ($team'mycmp'); 
          es geht natürlich auch in einer Schleife, aber dann wird entweder die Query unübersichtlich oder es braucht mehr Schleifendurchläufe.
          mein Sport: mein Frühstück: meine Arbeit:

          Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

          Kommentar


          • #6
            Vielen Dank schonmal. Werde es ausprobieren.

            Kommentar


            • #7
              Fehler bei

              $teams = array();

              Gruß Michael

              Kommentar


              • #8
                Parse Error?
                In der Zeile davor fehlt was ... vermutlich das abschließende Semikolon.

                Aber mach trotzdem mal $team = array(); draus.
                mein Sport: mein Frühstück: meine Arbeit:

                Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                Kommentar


                • #9
                  Ich probiere dieses skript dierkt in der db im sql-fenster aus. Aber mit und ohne 's' kommt folgende Fehlermeldung:

                  Fehler

                  SQL-Befehl :

                  $team = array(

                  )

                  MySQL meldet:


                  You have an error in your SQL syntax near '$team = array()' at line 1

                  Kommentar


                  • #10
                    Das ist ein PHP-Skript. Logisch, dass ein SQL-Parser nix damit anfangen kann.
                    mein Sport: mein Frühstück: meine Arbeit:

                    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                    Kommentar

                    Lädt...
                    X