Tak wyglada moja tabela wynikow, sortowanie jest wg ilosci pkt,
jednak jezeli dwie druzyny maja taka sama ilosc pkt, to wyzej powinna byc ta ktora w meczu bezposrednim ( obie druzyny z ta sama iloscia pkt graja razem )
<?php
function tabela() {
global $color, $zespoly_tbl, $wyniki_tbl, $kolor1, $kolor2, $kolo3, $kolor4, $kolor5, $sezon, $sort; $result = mysql_query("SELECT * FROM $zespoly_tbl ORDER BY pkt DESC, $sort"); echo '<div class="title" align="center"><B>'.$sezon.'</B></div><BR><table width="90%" border="0" cellspacing="0" cellpadding="1" align="center"> <tr>
<td>
<table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="#aaaaaa" align="center">
<tr>
<td>
<table width="100%" border="0" cellspacing="1" cellpadding="0">
<tr>
<td class="title" bgcolor="'.$color[1].'" align="center"><B>Lp</B></td>
<td class="title" bgcolor="'.$color[1].'"><B>Zespół</B></td>
<td class="title" bgcolor="'.$color[1].'" align="center"><B>Pkt</B></td>
<td class="title" bgcolor="'.$color[1].'" align="center"><A Title="meczy" Style="cursor: default;"><B>M</B></a></td>
<td class="title" bgcolor="'.$color[1].'" align="center"><A Title="zwycięstwa" Style="cursor: default;"><B>Zw</B></a></td>
<td class="title" bgcolor="'.$color[1].'" align="center"><A Title="remisy" Style="cursor: default;"><B>Re</B></a></td>
<td class="title" bgcolor="'.$color[1].'" align="center"><A Title="porażki" Style="cursor: default;"><B>Po</B></a></td>
<td class="title" bgcolor="'.$color[1].'" align="center"><A Title="bramki strzelone" Style="cursor: default;"><B>+</B></a></td>
<td class="title" bgcolor="'.$color[1].'" align="center"><A Title="bramki stracone" Style="cursor: default;"><B>-</B></a></td>
<td class="title" bgcolor="'.$color[1].'" align="center"><A Title="różnica" Style="cursor: default;"><B>R</B></a></td>
<td class="title" bgcolor="'.$color[1].'" align="center"><B>Dom</B></a></td>
<td class="title" bgcolor="'.$color[1].'" align="center"><B>Wyjazd</B></a></td>
</tr>';
$num=1;
$id = $r['id'];
$zespol = $r['zespol'];
$mecze = $r['mecze'];
$zwy = $r['zwy'];
$re = $r['rem'];
$por = $r['por'];
$bstrz = $r['bstrz'];
$bstra = $r['bstra'];
$pkt = $r['pkt'];
$roznica = $r['roznica'];
$dzwy = $r['dzwy'];
$drem = $r['drem'];
$dpor = $r['dpor'];
$wzwy = $r['wzwy'];
$wrem = $r['wrem'];
$wpor = $r['wpor'];
$dbrmstrz = $r['dbrmstrz'];
$dbrmstra = $r['dbrmstra'];
$wbrmstrz = $r['wbrmstrz'];
$wbrmstra = $r['wbrmstra'];
if($roznica>0) $roznica= '+'.$roznica.'';
if($num==1) $bg=$kolor1; elseif($num==2 or $num==3) $bg=$kolor2; elseif($num==14) $bg=$kolor4; elseif($num==15 or $num==16) $bg=$kolor5; else $bg=$color[4];
<td class="title" bgcolor="'.$bg.'">'.$num.'</td>
<td class="title" bgcolor="'.$bg.'"><a href="liga.php?cmd=zes&id='.$id.'">'.$zespol.'</a></td>
<td class="title" bgcolor="'.$bg.'"><B>'.$pkt.'</B></td>
<td class="title" bgcolor="'.$bg.'">'.$mecze.'</td>
<td class="title" bgcolor="'.$bg.'">'.$zwy.'</td>
<td class="title" bgcolor="'.$bg.'">'.$re.'</td>
<td class="title" bgcolor="'.$bg.'">'.$por.'</td>
<td class="title" bgcolor="'.$bg.'">'.$bstrz.'</td>
<td class="title" bgcolor="'.$bg.'">'.$bstra.'</td>
<td class="title" bgcolor="'.$bg.'">'.$roznica.'</td>
<td class="title" bgcolor="'.$bg.'">'.$dzwy.'-'.$drem.'-'.$dpor.' ('.$dbrmstrz.'-'.$dbrmstra.')</td>
<td class="title" bgcolor="'.$bg.'">'.$wzwy.'-'.$wrem.'-'.$wpor.' ('.$wbrmstrz.'-'.$wbrmstra.')</td>
</tr>';
$num++;
}
</td>
</tr>
</table>
</td>
</tr>
</table><BR>
<div class="title" align="center">[ <a href="liga.php?cmd=rez">rezultaty</a> ]</div>';
}
?>
to dziala ok wg pkt, ale nie wg meczy tutaj jest cos aby tak sortowalo
<?php
// ... połączenie z bazą itp
$sql = 'SELECT * FROM liga';
$wzor = array('pkt'=>0, 'wygrane'=>0, 'remisy'=>0, 'przegrane'=>0, 'bramki_zdobyte'=>0, 'bramki_stracone'=>0, 'mecze'=>array
()); if(!isset($liga[$row['gosp_id_klubu']])) $liga[$row['gosp_id_klubu']] = $wzor; if(!isset($liga[$row['gosc_id_klubu']])) $liga[$row['gosc_id_klubu']] = $wzor; $gosp = &$liga[$row['gosp_id_klubu']];
$gosc = &$liga[$row['gosc_id_klubu']];
$gosp['id'] = $row['gosp_id_klubu'];
$gosc['id'] = $row['gosc_id_klubu'];
if($row['gosp_gole']>$row['gosc_gole']) {
$gosp['pkt']+=3;
$gosp['wygrane']++;
$gosc['przegrane']++;
}
elseif($row['gosp_gole']==$row['gosc_gole']) {
$gosp['pkt']++;
$gosc['pkt']++;
$gosp['remisy']++;
$gosc['remisy']++;
}
else {
$gosc['pkt']+=3;
$gosc['wygrane']++;
$gosp['przegrane']++;
}
$gosp['bramki_zdobyte']+= $row['gosp_gole'];
$gosp['bramki_stracone']+= $row['gosc_gole'];
$gosc['bramki_zdobyte']+= $row['gosc_gole'];
$gosc['bramki_stracone']+= $row['gosp_gole'];
if(!isset($gosp['mecze'][$row['gosc_id_klubu']])) $gosp['mecze'][$row['gosc_id_klubu']] = 0; if(!isset($gosc['mecze'][$row['gosp_id_klubu']])) $gosc['mecze'][$row['gosp_id_klubu']] = 0; $diff = $row['gosp_gole'] - $row['gosc_gole'];
$gosp['mecze'][$row['gosc_id_klubu']]+= $diff;
$gosc['mecze'][$row['gosp_id_klubu']]-= $diff;
}
// Sortowanie w zaleznosci od ilości punktów, gdy liczba punktów jest taka sama br
ane sa pod uwage bezpośrednie konfrontacje, gdy w bezpośrednich konfrontacjach je
st remis pod uwage brana jest róznica w strzelonych i straconych bramkach ;)
function points_cmp($row1, $row2) {
$result = 0;
if($row1['pkt']<$row2['pkt'])
$result = 1;
elseif($row1['pkt']==$row2['pkt']) {
if($row1['mecze'][$row2['id']]==0)
$result = ($row1['bramki_zdobyte']-$row1['bramki_stracone'])<($row2['bramki_zdobyte']-$row2['bramki_stracone']);
else
$result = $row1['mecze'][$row2['id']]<0;
}
return $result;
}
// Tablica $liga - posortowana odpowiednio :)
?>
jednak nie umiem tego polaczyc w jedna calosc, czy moglby ktos pomoc ? zrobic jakies gotowe rozwiazanie