kostenloser Webspace werbefrei: lima-city


MySql/PHP Verwaltung eines Turniers (bsp. Eishockey-WM)

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    whocaresprod

    whocaresprod hat kostenlosen Webspace.

    Hallo zusammen,

    ich bastle gerade an einer Verwaltung von Turnieren in der Machart der Eishockey-WM.

    Die MySQL-Tabellen sind so strukturiert, dass in einer Tabelle alle Spielergebnisse gespeichert werden (mit Match_id, Runde (also Vorrunde, Zwischenrunde, etc.), Gruppenname (für Gruppenspiele), Heimscore, Auswärtsscore...

    Daraus via SQL-Statements eine Ergebnistabelle zu generieren ist mir bereits gelungen. Siehe Code:
    $sql_befehl = "SELECT *,
      				COUNT(s.match_id) AS gespielt,	
    				SUM(
    					IF(t.nation_id = s.team_home AND s.home_score > s.away_score, 1, 0) OR
    					IF(t.nation_id = s.team_away AND s.away_score > s.home_score, 1, 0)
    				) AS siege,
    				
    				SUM(
    					IF(t.nation_id = s.team_home AND s.home_score < s.away_score, 1, 0) OR
    					IF(t.nation_id = s.team_away AND s.away_score < s.home_score, 1, 0)
    				) AS niederlagen,
    				
    				SUM(
    					IF(s.home_score = s.away_score, 1, 0)
      				) AS unentschieden,
    				
    				SUM(
        				IF(t.nation_id = s.team_home, s.home_score, 0) +
        				IF(t.nation_id = s.team_away, s.away_score, 0)
    			  	) AS tore,
    				
    				SUM(
        				IF(t.nation_id = s.team_home, s.away_score, 0) +
        				IF(t.nation_id = s.team_away, s.home_score, 0)
    			  	) AS gegentore,
    
    				COALESCE(
        				SUM(
          					IF(t.nation_id = s.team_home, s.home_score, -s.home_score) +
          					IF(t.nation_id = s.team_away, s.away_score, -s.away_score)
    				    ), 0
    				 ) AS tordifferenz,
    				
    				SUM(
    					IF(
    					   	(t.nation_id = s.team_home AND s.home_score > s.away_score) OR
    						(t.nation_id = s.team_away AND s.away_score > s.home_score),3,0) +
    					IF(s.home_score = s.away_score, 1, 0)
    			  	) AS punkte
    				 
    				FROM
      				nation t
    				
    				LEFT JOIN
    				icehockey_matches s ON (t.nation_id IN (s.team_home, s.team_away))
     								
    				WHERE
    					match_group = 'B'
    				AND	tournament = 1
    				
    				GROUP BY
      					nation_id
    				ORDER BY
    					punkte DESC,
      					tordifferenz DESC,
    					tore DESC";


    Jetzt habe ich nur folgendes Problem: Bei den Eishockey-WMs der Vergangenheit haben die Teams aus der Vorrunde (bei mir die "match_group" A-D, Runde: "Vorrunde" ) Punkte bzw. die Ergebnisse von 2 (von insgesamt 3) Gruppenspielen in die Zwischenrunde ("match_group" E-F, Runde: "Zwischenrund" ) mitgenommen.
    Und ich habe einen Knopf im Hirn, wie ich das obige SQL-Statement erweitern muss, dass er mir die zwei Partien aus der Vorrunde auch in die Zwischenrunde mit rüber nimmt...
    Ich hoffe, dass ist nicht zu verwirrend dargestellt. Und vielleicht hat wer eine Idee, wie ich das lösen könnte. Schon mal jetzt Danke vorab.


    Beitrag zuletzt geändert: 7.5.2013 21:55:54 von whocaresprod
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!