MySQL Abfragen

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

  • MySQL Abfragen

    hi

    ich möchte ein clanwar scrpt für meinen clan schreiben. jetzt möchte ich, das mir das script folgende 4 werte ausliest: anzahl matches, gewonnene matches, matches mit unentschieden und verlorene matches.

    in der datenbank hats zwei spalten und zwar resultat1 und resultat2.

    in resultat1 steht die punktzahl von unserem team und in resultat2 steht die punktzahl vom gegner team.

    er müsste also folgendes ausrechnen:

    anzahl matches: ist klar
    gewonnene matches: anzahl resultat1 > resultat2
    verlorene matches: anzahl resultat1 < resultat2
    unentschieden: anzahl resultat1 = resultat2

    weiss jemand wie ich das am besten löse?

    gruss

  • #2
    Re: MySQL Abfragen

    weiss jemand wie ich das am besten löse?
    ja!
    Code:
    SELECT
      IF (
        resultat1 > resultat2, 
        "won", 
        IF (
          resultat1 < resultat2,
          "lost",
          "tie"
        ) 
      ) result,
      COUNT(
        IF (
          resultat1 > resultat2, 
          "won", 
          IF (
            resultat1 < resultat2,
            "lost",
            "tie"
          ) 
        )
      ) counted
    FROM
      tabelle
    GROUP BY
      result
    sollte prinzipiell, abgesehen von typos etc. der weg sein ...

    poste nen dump und ich kanns testen und optimieren ...
    Zuletzt geändert von derHund; 17.09.2004, 20:04.
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      okay danke für deine antwort. also mein script sieht so aus (gekürzt):


      PHP-Code:
      $resID mysql_query("select * from squads WHERE showme = 'all' OR showme = 'teams' ORDER BY id"$condb);
              
      while(
      $ausgabe mysql_fetch_array($resID))
              { 

      // Hier sollte dann die Anzahl der Matches usw. stehn.


      also es ist so das es noch etwas zu beachten gibt und zwar gibt es verschieden teams. er müsste beim auslesen also noch folgendes machen:

      WHERE squad = $ausgabe[id]

      ich hoffe ihr versteht was ich meine..

      Kommentar


      • #4
        @ Hund
        langt da nicht ...
        PHP-Code:
        SELECT 
         SUM
        (resultat1>resultat2) as winner,
         
        SUM(resultat1<resultat2) as looser
         
        SUM(resultat1=resultat2) as draws FROM xyz 
        ... ???

        Kommentar


        • #5
          okay danke für deine antwort. also mein script sieht so aus
          dein script interessiert mich ehrlich gesagt einen ... naja, das wort, was ich nicht sagen soll eben, ...

          ein dump der tabelle würde mich eher interessieren ...
          @ Hund
          langt da nicht ...
          wieso das nicht?

          ich bestimmte das ergebnis:
          Code:
          IF (resultat1 > resultat2, "won", IF (resultat1 < resultat2, "lost", "tie")) result,
          zähle und gruppiere danach ... gruppiere und zähle mein ich
          Die Zeit hat ihre Kinder längst gefressen

          Kommentar


          • #6
            ohje ich glaub jetzt wirds zu kompliziert für mich...

            also wenn ichs so mache wie derHund sagt, wie kann ich dann die zahlen ausgeben?

            Kommentar


            • #7
              Original geschrieben von PHPbeginner
              also wenn ichs so mache wie derHund sagt, wie kann ich dann die zahlen ausgeben?
              setz das ganze im pma ab und schau, was dabei rauskommt
              Kissolino.com

              Kommentar


              • #8
                @ Hund
                Ergebniss ist das selbe wie bei SUM aber nicht grad sehr einfach zu verstehen...find ich.

                @PHPbeginner
                Bau mal Hunds oder mein Statement ein statt deiner SQL abfrage und du kannst die anzahl der ergebnisse direkt auslesen

                bei hund hast du die dann als $ausgabe["lost"],$ausgabe["tie"] und $ausgabe["won"]
                bei mir heissen die halt $ausgabe["looser"],$ausgabe["winner"] und $ausgabe["draw"]

                Da werden dir dann aber nur die Anzahl der gewonnenen, verlorenen und unentschiedenen Matches geliefert. Wenn du das auf die teams eingrenzen willst dann musst du einfach deine WHERE abfrage anpassen wenn du jeweils ein team abfragen möchtest oder du grupierst es wenn du für die teams jeweils die einzeln die Ergebnisse sehen willst.

                Eine Möglichkeit wäre dann

                PHP-Code:
                SELECT 
                 irgendwas
                ,
                 
                SUM(resultat1>resultat2) as winner,
                 
                SUM(resultat1<resultat2) as looser
                 
                SUM(resultat1=resultat2) as draws FROM squads
                 GROUP BY irgendwas 
                irgendwas = feld mit den namen der teams , oder deren ID oderwas auch immer du da vorgesehen hast.

                Kommentar

                Lädt...
                X