Fußballtabelle - Serien (Siege,Ungeschlagen,Sieglos) erstellen
hattrix
- php
Mein Code:
$series = "SELECT team_id,max( spieltag ) AS sp, win, remis, lost FROM hattrix_tabelle WHERE team_id =1 GROUP BY win, remis, lost ORDER BY sp DESC";
$results = mysql_query($series);
while($row = mysql_fetch_row($results))
{
if($row[2]==1) $win=$row[1];
if($row[3]==1) $remis=$row[1];
if($row[4]==1) $lost=$row[1];
if($row[3]==1 || $row[4]==1) $rul=$row[1];
if($row[2]==1 || $row[3]==1) $wur=$row[1];
$s=(7-$rul); //siegesserie
echo 'Siege:<br><font face="Tahoma" size="1">'.$row[0].' ('.$s.'x)</font><br>';
$s=(7-$lost); //ungeschlagen
echo 'Ungeschlagen:<br><font face="Tahoma" size="1">'.$row[0].' ('.$s.'x)</font><br>';
$s=(7-$wur); //sieglos
echo 'Sieglos:<br><font face="Tahoma" size="1">'.$row[0].' ('.$s.'x)</font><br>';
}
und erhalte:
Siege:
1 (7x)
Ungeschlagen:
1 (7x)
Sieglos:
1 (0x)
Siege:
1 (2x)
Ungeschlagen:
1 (2x)
Sieglos:
1 (0x)
Siege:
1 (3x)
Ungeschlagen:
1 (2x)
Sieglos:
1 (3x)
Komme nicht weiter ...
Vergessen, in der DB vorhanden Daten:
spieltag,team_id,win,remis,lost
1, 1, 1, 0, 0
2, 1, 0, 1, 0
3, 1, 1, 0, 0
4, 1, 0, 1, 0
5, 1, 0, 0, 1
6, 1, 1, 0, 0
7, 1, 1, 0, 0
if($row[2]==1) $win=$row[1];
if($row[3]==1) $remis=$row[1];
if($row[4]==1) $lost=$row[1];
if($remis<$lost) { if($row[3]==1 || $row[4]==1) $rul=$lost; }
if($remis>$lost) { if($row[3]==1 || $row[4]==1) $rul=$remis; }
if($win<$remis) { if($row[2]==1 || $row[3]==1) $wur=$remis; }
if($win>$remis) { if($row[2]==1 || $row[3]==1) $wur=$win; }
Konnte es mir nun selbst beantworten! In dem Script dürften nun keine Bugs mehr sein?
Hallo,
war deine Ausgabe im 1. Post nur eine Debugausgabe oder willst du das wirklich kein table-Element verwenden?
Gruß
MrWurf
Ja, nur zum debuggen. Stylen kommt zum Schluss.
Habe doch noch ein Problem... habe ich mehrere Vereine, wird immer nur Team_id 1 angeziegt. Auch wenn ich die WHERE-Klausel entferne!
Weiß jemand, wie man das hinbekommt, dass man von jedem Verein die Serie sieht?
Hallo,
Habe doch noch ein Problem... habe ich mehrere Vereine, wird immer nur Team_id 1 angeziegt. Auch wenn ich die WHERE-Klausel entferne!
weil du nicht nach team_id gruppierst?
Gruß
MrWurf
Nein, funktioniert auch nicht.
Aktuelle Stand:
$series = "SELECT team_id,max( spieltag ) AS sp, win, remis, lost FROM hattrix_tabelle GROUP BY win, remis, lost GROUP BY team_id ORDER BY sp DESC";
$results = mysql_query($series);
while($row = mysql_fetch_row($results))
{
$team=$row[0];
if($row[2]==1) $win=$row[1];
if($row[3]==1) $remis=$row[1];
if($row[4]==1) $lost=$row[1];
if($remis<$lost) { if($row[3]==1 || $row[4]==1) $rul=$lost; }
if($remis>$lost) { if($row[3]==1 || $row[4]==1) $rul=$remis; }
if($win<$remis) { if($row[2]==1 || $row[3]==1) $wur=$remis; }
if($win>$remis) { if($row[2]==1 || $row[3]==1) $wur=$win; }
}
$s=(7-$rul); //siegesserie
echo 'Siege:<br><font face="Tahoma" size="1">'.$team.' ('.$s.'x)</font><br>';
$s=(7-$lost); //ungeschlagen
echo 'Ungeschlagen:<br><font face="Tahoma" size="1">'.$team.' ('.$s.'x)</font><br>';
$s=(7-$wur); //sieglos
echo 'Sieglos:<br><font face="Tahoma" size="1">'.$team.' ('.$s.'x)</font><br>';
Hallo
Nein, funktioniert auch nicht.
was funktioniert nicht?
$series = "SELECT team_id,max( spieltag ) AS sp, win, remis, lost FROM hattrix_tabelle GROUP BY win, remis, lost GROUP BY team_id ORDER BY sp DESC";
könnte es evtl. an der doppelten "GROUP BY" Klausel liegen?
Gruß
MrWurf
Ich habe 2 Vereine als Team_id drin. Einmal die 1 und einmal die 2.
Er gibt mir nur die 2 aus und die Daten von 1.
Das doppelte GROUP BY habe ich entfernt.
SELECT team_id,max( spieltag ) AS sp, win, remis, lost FROM hattrix_tabelle WHERE team_id =1 GROUP BY win, remis, lost ORDER BY sp DESC
Deine Ergebnistabelle soll also mannschaftsbezogen ermitteln, wieviele Spiele insgesamt, davon verloren, gewonnen und unentschieden? Dann würde ich das so machen:
SELECT
team_id AS Mannschaft
MAX(spieltag) AS Spiele
COUNT(win) AS Siege
COUNT(remis) AS Unentschieden
COUNT(lost) AS Niederlagen
FROM
hattrix_tabelle
WHERE
team_id = 1
GROUP BY
team_id
Das ergäbe folgende Ergebnistabelle:
Mannschaft | Spiele | Siege | Unentschieden | Niederlagen
Um falsche Ergebnisse zu vermeiden, könnte man auch statt MAX die Siege, Unentschieden und Niederlagen summieren und als Gesamtzahl der Spiele auswerfen.
Siechfred
Nein, ich möchte Statistiken haben: