Hallo zusammen ich habe ein Problem mit der Rangliste, die ich gebaut habe. Es ist eine Rangliste für einen Fussballclub.
Die Rangliste funktioniert richtig solange ein Team nicht 2mal ein gleiches resultat erzielt hat. Wenn zweimal ein gleiches resultat vorhanden ist, wir es nur einmal in die Rangliste eingetragen.
Hier der code dazu:
Code:
<?php
function queryRangliste2() {
// Temporaräre Tabelle mit 1 Eintrag pro Spiel und Team
mysql_query("CREATE TEMPORARY TABLE tmpRangliste1
SELECT STID1 AS tmpTID, RHeim AS tmpTP, RGast AS tmpTM
FROM tblSpiele2
INNER JOIN tblResultate2 ON SID = RSID
UNION
SELECT STID2 AS tmpTID, RGast AS tmpTP, RHeim AS tmpTM
FROM tblSpiele2
INNER JOIN tblResultate2 ON SID = RSID"
);
echo mysql_error();
// zwischen Sieg, Unentschieden und Niederlage unterscheiden
mysql_query("CREATE TEMPORARY TABLE tmpRangliste2
SELECT *, 1 AS tmpG, 0 AS tmpU, 0 AS tmpN
FROM tmpRangliste1
WHERE tmpTP > tmpTM
UNION
SELECT *, 0 AS tmpG, 1 AS tmpU, 0 AS tmpN
FROM tmpRangliste1
WHERE tmpTP = tmpTM
UNION
SELECT *, 0 AS tmpG, 0 AS tmpU, 1 As tmpN
FROM tmpRangliste1
WHERE tmpTP < tmpTM"
);
echo mysql_error();
// Einträge zusammenfassen
mysql_query("CREATE TEMPORARY TABLE tmpRangliste3
SELECT tmpTID, SUM(tmpTP) AS tmpTP, SUM(tmpTM) AS tmpTM, SUM(tmpG) AS tmpG, SUM(tmpU) AS tmpU, SUM(tmpN) AS tmpN
FROM tmpRangliste2
GROUP BY tmpTID"
);
echo mysql_error();
// Punkte, Spiele und Tordifferenz errechnen
mysql_query("CREATE TEMPORARY TABLE tmpRangliste4
SELECT *, (tmpG * 3 + tmpU) AS tmpP, (tmpG + tmpU + tmpN) AS tmpS, (tmpTP - tmpTM) AS tmpTD
FROM tmpRangliste3"
);
echo mysql_error();
return mysql_query("SELECT TID, TName, tmpTP, tmpTM, tmpP, tmpS, tmpG, tmpU, tmpN, tmpTD
FROM tblTeams2 LEFT JOIN tmpRangliste4 ON TID = tmpTID
ORDER BY tmpP DESC, tmpS ASC, tmpTD DESC, tmpTP DESC"
);
}
?>