Voting-Statistik

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

  • Voting-Statistik

    Hallo zusammen!


    Ich bastle gerade eine Art "WettSeite" und habe folgendes Problem:

    Ich möchte gerne bei jedem Spiel, dass die User die Möglichkeit haben eine kleine Statistik zu sehen.

    Zum Beispiel bei Spiel: Deutschland # Italien
    [list=1]
    wette prozent[*]0:0 90%[*]1:1 5%[*] 2:1 5%[/list=1]

    d.h 90% der user haben 0:0 getippt,5% 1:1 und 5% 2:1.
    Ich habe eine Datenbank Tabelle, wo Eingaben von User drauf stehen, und was sie getippt haben.

    UserID GameID goals_teams1 goals_teams2

    Ich muss erstmal die Daten aus der Datenbank mit SQL Anfragen rausholen und dann mit eine PHP Funktion die Statistik berechnen.
    Kann mir vielleicht jemand helfen bzw. Tipps geben?

    vielen Dank!

  • #2
    PHP-Code:
    $sql "
        SELECT
            CONCAT(goals_teams1, ':',  goals_teams2) tipp,
            COUNT(UserId) anzahl
        FROM
            wetten
        GROUP BY
            tipp
        ORDER BY
            anzahl DESC"

    Gruss
    H2O

    Kommentar


    • #3
      1a php frage
      **********
      arkos
      **********

      Kommentar


      • #4
        Original geschrieben von H2O
        PHP-Code:
        $sql "
            SELECT
                CONCAT(goals_teams1, ':',  goals_teams2) tipp,
                COUNT(UserId) anzahl
            FROM
                wetten
            GROUP BY
                tipp
            ORDER BY
                anzahl DESC"

        Danke für deine Antwort
        wie kann man im PHP Prozent berechnen?
        Also (anzahl*100)/summe_von_tipp

        Kommentar


        • #5
          Original geschrieben von barca
          wie kann man im PHP Prozent berechnen?
          Also (anzahl*100)/summe_von_tipp
          Grundsätzlich genau so. Allerdings musst du $summe_von_tipp vorher in einer separaten Abfrage bestimmen.
          Original geschrieben von arkos
          1a php frage
          Man könnte das natürlich auch mehrheitlich mit PHP lösen. Würde aber etwas komplizierter. Und damit niemand auf die Idee kommt, so etwas auch zu benutzen, mach ich auch kein Beispiel
          Gruss
          H2O

          Kommentar


          • #6
            1a php frage
            Recht haste drum **move** nach SQL
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #7
              Original geschrieben von H2O
              Allerdings musst du $summe_von_tipp vorher in einer separaten Abfrage bestimmen.
              muss doch nicht zwingend in einer separaten abfrage passieren, oder? warum nicht gleich n count () per subselect oder join mit im query aufnehmen. so hätte man auch gleich alle parameter zum berechner der prozente...
              **********
              arkos
              **********

              Kommentar


              • #8
                Original geschrieben von arkos
                warum nicht gleich n count () per subselect oder join mit im query aufnehmen. so hätte man auch gleich alle parameter zum berechner der prozente...
                Ich bezweifle, ob das mit einer GROUP BY-Abfrage überhaupt geht. Und selbst wenn es geht, glaube ich nicht, dass es effizienter ist, die Gesamtanzahl in jeder Zeile neu zu berechnen, als vorher diese Berechnung einmal in einer separaten Abfrage zu machen.
                Gruss
                H2O

                Kommentar


                • #9
                  also,wenn ich das in der selben Abfrage mache,dann sollte so ausschauen,oder?

                  PHP-Code:
                  $sql "
                      SELECT
                          CONCAT(goals_teams1, ':',  goals_teams2) tipp,
                          COUNT(UserId) anzahl,
                          SUM(COUNT((CONCAT(goals_teams1, ':',  goals_teams2)))
                      FROM
                          wetten
                      GROUP BY
                          tipp
                      ORDER BY
                          anzahl DESC"

                  Zuletzt geändert von barca; 06.05.2008, 16:06.

                  Kommentar


                  • #10
                    also,wenn ich das in der selben Abfrage mache,dann sollte so ausschauen,oder?
                    imho wirst du es nicht schaffen eine Summenfunktion auf einen String anzuwenden.
                    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                    Kommentar


                    • #11
                      Original geschrieben von jahlives
                      imho wirst du es nicht schaffen eine Summenfunktion auf einen String anzuwenden.
                      Ich meinte SUM(COUNT) .Sorry siehe geänderte Code oben!
                      Zuletzt geändert von barca; 06.05.2008, 16:06.

                      Kommentar


                      • #12
                        Ich nehm an, du hast selber gemerkt, dass es so nicht geht, weil die GROUP BY Klausel natürlich auch für diese Summe gilt. Und die %-Berechnung ist dann ja auch noch nicht drin. Wenn schon, dann
                        PHP-Code:
                        $sql "
                        SELECT 
                            CONCAT(goals_teams1, ':',  goals_teams2) tipp,
                            COUNT(UserId) anz,
                            CONCAT(COUNT(UserId) * 100 / ( 
                                SELECT 
                                    COUNT(UserId) 
                                FROM 
                                    wetten
                            ), '%') prozent
                        FROM 
                            wetten 
                        GROUP BY
                            tipp
                        ORDER BY
                            anz DESC"

                        Aber wie schon gesagt, da wird das Total für jede Zeile neu gerechnet
                        Zuletzt geändert von H2O; 07.05.2008, 09:56.
                        Gruss
                        H2O

                        Kommentar


                        • #13
                          hmm...was ist generation?

                          Kommentar


                          • #14
                            Original geschrieben von barca
                            hmm...was ist generation?
                            Ganz einfach ein cut-&paste-Fehler. Stammt aus meiner Testabfrage, habs jetzt korrigiert
                            Gruss
                            H2O

                            Kommentar

                            Lädt...
                            X