Fussballtabelle???

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

  • Fussballtabelle???

    Hallo zusammen,
    ich komme hier einfach nicht weiter.
    Diese Abfrage baut eine Tabelle die die beste Heimmannschaft zeigt:
    PHP-Code:
    select
        SUM
    (SPIELE.Tore1) AS torePositv,
        
    SUM(SPIELE.Tore2) AS toreNegativ,
        
    SUM(SPIELE.Punkte1) AS punktePositiv,
        
    SUM(SPIELE.Punkte2) AS punkteNegativ,
        
    LIGA.Name
        from
        SPIELE
    ,LIGA
        where
        
    (SPIELE.Mannschaft1 LIKE '%Gruppe1%'
        
    AND
        
    SPIELE.Mannschaft1 LIGA.Liga)
        
    GROUP BY LIGA.Name
        ORDER BY punktePositiv DESC 
    Diese Abfrage zeigt die beste Auswärtsmannschaft:
    PHP-Code:
    select
        SUM
    (SPIELE.Tore1) AS torePositv,
        
    SUM(SPIELE.Tore2) AS toreNegativ,
        
    SUM(SPIELE.Punkte1) AS punktePositiv,
        
    SUM(SPIELE.Punkte2) AS punkteNegativ,
        
    LIGA.Name
        from
        SPIELE
    ,LIGA
        where
        
    (SPIELE.Mannschaft2 LIKE '%Gruppe1%'
        
    AND
        
    SPIELE.Mannschaft2 LIGA.Liga)
        
    GROUP BY LIGA.Name
        ORDER BY punkteNegativ DESC 
    Mein Problem ist jetzt, eine Abfrage zu erstellen, die die beiden oberen Abfrage zu einer vereint, damit ich eine Gesamttabelle darstellen lassen kann...
    Leider kann ich die Struktur der Tabellen in der DB nicht beeinflussen...
    Hat jemand eine Idee???

    Danke
    Rob

  • #2
    2 Query's öffnen und 1. Spalte->1.Query , 2.Spalte 2.Query ??

    Kommentar


    • #3
      Sorry, aber das verstehen ich nich......?????????

      Kommentar


      • #4
        fuser meinte damit wohl, dass du so einfach die beiden Tabellen nebeneinander darstellen kannst .. in zwei Tabellenspalten.

        Aber wenn ich mich nicht täusche, willst du einfach eine Gesamttabelle erstellen, in der quasi die Punkte dieser beiden Tabellen addiert werden.

        Hab mir das nun nicht genauer angeschaut, aber mein schneller Tip:

        PHP-Code:
        select
            SUM
        (SPIELE.Tore1) AS torePositv,
            
        SUM(SPIELE.Tore2) AS toreNegativ,
            
        SUM(SPIELE.Punkte1) AS punktePositiv,
            
        SUM(SPIELE.Punkte2) AS punkteNegativ,
            
        LIGA.Name
            from
            SPIELE
        ,LIGA
            where
            
        (SPIELE.Mannschaft1 LIKE '%Gruppe1%'
            
        AND
            
        SPIELE.Mannschaft1 LIGA.Liga)
            OR
            (
        SPIELE.Mannschaft2 LIKE '%Gruppe1%'
            
        AND
            
        SPIELE.Mannschaft2 LIGA.Liga)
            
        GROUP BY LIGA.Name
            ORDER BY punktePositiv DESC 
        [color=red]Geht nicht[/color] ist keine Fehlermeldung

        Kommentar


        • #5
          Oh!
          Die Sortierung im SQL ist schwierig, deshalb dachte ich
          man lässt die SQL's einfach wie sie sind und macht beide
          SQL's parallel auf.
          Dann printed man für die HTML-Seite
          die Daten aus dem entsprechend passenden Query.
          Also mit EINE Schleife für BEIDE Abfragen.
          Etwa so:

          Beide aufmachen
          $result1 = mysql_query($sql1);
          $result2 = mysql_query($sql2);

          Und mit einer Schleife beide durchgehen
          {
          print HTML-1.Spalte aus Query1 (<tr><td>Feld von $result1</td>)
          print HTML-2.Spalte aus Query2 ( <td>Feld von $result2</td><tr> )
          }

          Kommentar


          • #6
            Habe das jetzt nuir kurz überflogen und auch nur wenig Zeit :

            Aber hier ein Vorschlag

            1.) Beide Querys mit Join um Forumielern
            2.) Aliase Verwenden und Tabellen je zweidach einfügen
            3.) ORDER BY punktepositiv, punktenegativ

            P.S ich versteh allerdings nix von Fussball
            chansel0049
            ----------------------------------------------------
            if you've reached the bottomline - dig further!
            Übersetzer gesucht? http://www.babelport.com

            Kommentar


            • #7
              Habe das jetzt nuir kurz überflogen und auch nur wenig Zeit :

              Aber hier ein Vorschlag

              1.) Beide Querys mit Join um Forumielern
              2.) Aliase Verwenden und Tabellen je zweidach einfügen
              3.) ORDER BY punktepositiv, punktenegativ

              P.S ich versteh allerdings nix von Fussball
              Hallo,
              dieser vorschalg ist glaube ich am besten.
              die Frage ist nur, wie die Joins aussehen müssen.
              Ich glaube das größte Problem ist, dass man rausfinden muss, welche Mannschaft gewonnen hat und ob es ein Heim oder Auswährtsstpiel ist.

              Gewinnt eine Mannschaft ein Heimspiel, hat sie 3 - 0 Punkte.
              Gewinnt die Mannschaft ein Auswährtsspiel bekomme sie auch 3 Punkte, aber in der Tabellestruktur wir es 0 - 3 Punkte eingetragen, weil die Gewinnermannschaft GAST war....
              Würde ich jetzt eine SUM(punkte) machen erhalte ich 3 - 3 was nicht korrekt ist. Es müsste 6 - 0 Punkte ergeben....!!!!!

              Vielen Dank
              Robert

              Kommentar


              • #8
                O.K

                also

                1.) ich versteh immer noch nix von Fussball
                2.) will ich das auch nicht


                und macht beide
                SQL's parallel auf.
                ist bei älteren PHP < 4.2 (rate ich jetzt mal) schwierig, weil nur ein DB-Handle geöffnet wird und Wege 127.0.01 / localhost Doppelung nicht da Gelbe vom Ei sind...


                Aber nu zum Them :

                was die Joins angeht so sollte INNER / LEFT Join gleich sein da sowieso beide gespielt haben müssen (ist doch so beim Fussball ? )

                also dann so in der ART
                PHP-Code:
                SELECT
                  
                if(t1.tore1 t2.tore1t1.tore1 t2.tore1 ) AS torenegativ ,
                 if(
                t1.tore1 t2.tore1t1.tore1 t2.tore1 ) AS torenegativ
                // ... oder halt andersrum und für Punkte genauso und dann noch was du brauchst
                FROM
                ((
                spiele AS t1
                LEFT JOIN spiele 
                AS t2 ON  t1.gepieltgegen t2.mannschaft )
                LEFT JOIN LIGA AS L1 ON t1.liga L1.liga)
                LEFT JOIN LIGA AS L2 ON t2.liga L1.liga)
                GROUP BY L1.Name
                ORDER BY   punktepositiv
                punktenegativ 
                Logischer Knackpunkt ist nun t1.gepieltgegen = t2.mannschaftname was ich jetzt aber net beurteilen kann welche Schlüssel da verknüpft werden müssen (Du hast keine Tabellenstruktur erklärt) aber prinzipiell muss ja sowas geben wo halt gesagt wird wer gegen wen spielte ...

                Hoffe das hilft !

                P.S. ich verstehe aber von Fussball noch Immer nix !
                chansel0049
                ----------------------------------------------------
                if you've reached the bottomline - dig further!
                Übersetzer gesucht? http://www.babelport.com

                Kommentar


                • #9
                  Hallo!
                  Ich versteh' auch nix von Fussball, aber wenn ich das richtig verstanden hab',
                  sollen 2 verschiedene Abfragen nebeneinander dargestellt werden.
                  Dann kann man das Problem ja auch im HTML totschlagen:

                  <table width="100%">
                  <tr><td><table>
                  <tr><td>Query1</td></tr>
                  <tr><td>Query1</td></tr>
                  </table></td>
                  <td><table>
                  <tr><td>Query2</td></tr>
                  <tr><td>Query2</td></tr>
                  </table>
                  </td></tr></table>

                  Im Code sind die Tabellen UNTEREINANDER, im Browser NEBENEINANDER.

                  Kommentar


                  • #10
                    Oder 2 Divs mit float:left||right und darin jeweils eine tab.
                    Für Rechtschreibfehler übernehme ich keine Haftung!

                    Kommentar

                    Lädt...
                    X