Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sortowanie w tabeli piłkarskiej
Forum PHP.pl > Forum > PHP
adams1692
Witajcie,

Prowadzę stronię piłkarską, zespołu z mojego regionu i mam pewien problem z posortowaniem drużyn w tabeli. Nie potrafię sobie poradzić z tematem kiedy dwie drużyny mają taką samą liczbę punktów. Obecnie sortowanie odbywa się w pierwszej kolejności po punktach oraz różnicy bramek, natomiast nie wiem jak po uzyskaniu takiej samej liczby punktów przez kilka drużyn, dodatkowo posortować je po wynikach bezpośrednich spotkań. Będę wdzięczny za pomoc. Poniżej podaję część mojego kodu tabeli.

  1. <?php
  2. echo "<table align='center' width='100%' cellpadding='0' cellspacing='0'>
  3. <tr bgcolor='#e0e0e0' height='25px'>
  4. <td></td>
  5. <td></td>
  6. <td></td>
  7. <td width='45px;'><b><center>Mecze</center></b></td>
  8. <td bgcolor='#006' width='40px;'><b><center><font color='white'>Pkt.</font></center></b></td>
  9. <td width='28px;'><b><center>Z.</center></b></td>
  10. <td width='28px;'><b><center>R.</center></b></td>
  11. <td width='28px;'><b><center>P.</center></b></td>
  12. <td width='28px;'><b><center>+</center></b></td>
  13. <td width='28px;'><b><center>-</center></b></td>
  14. <td width='28px;'><b><center>+/-</center></b></td>
  15. <td colspan='5'><b><center>Forma</center></b></td>
  16. </tr>";
  17.  
  18. $mglks = "MGLKS Termy Uniejów";
  19. $i = 0;
  20. $lp= 1;
  21. $wynik = dbquery("SELECT u.*, b.pelna AS nazwa, SUM(u.pkt) AS pkt, SUM(u.roznica) AS roznica, COUNT(u.druzyna_id) AS ile, SUM(u.zdobyte_bramki) AS zdobyte, SUM(u.stracone_bramki) AS stracone
  22. FROM tabela u
  23. LEFT JOIN druzyny b ON u.druzyna_id=b.pelna
  24. GROUP BY id ORDER BY pkt DESC, roznica DESC, zdobyte_bramki DESC");
  25.  
  26.  
  27. while($r = dbarray($wynik)) {
  28. $row_color = ($i % 2 == 0 ? "#FFFFFF" : "#e0e0e0");
  29.  
  30. $result = dbquery("SELECT * FROM druzyny WHERE pelna='".$r['nazwa']."'");
  31. $data = dbarray($result);
  32.  
  33. $result1 = dbquery("SELECT COUNT(pkt) AS wygrana FROM tabela WHERE pkt='3' AND druzyna_id='".$r['nazwa']."'");
  34. $wygrane = dbarray($result1);
  35.  
  36. $result2 = dbquery("SELECT COUNT(pkt) AS remis FROM tabela WHERE pkt='1' AND druzyna_id='".$r['nazwa']."'");
  37. $remisy = dbarray($result2);
  38.  
  39. $result3 = dbquery("SELECT COUNT(pkt) AS przegrana FROM tabela WHERE pkt='0' AND druzyna_id='".$r['nazwa']."'");
  40. $porazki = dbarray($result3);
  41.  
  42. $result4 = dbquery("SELECT * FROM druzyny WHERE pelna='".$r['nazwa']."'");
  43. $data4 = dbarray($result4);
  44.  
  45. //dwie pierwsze pozycje w tabeli
  46. if ($lp <= 1){
  47. echo "<tr bgcolor='green'><td><font color='white'>";
  48. echo $lp++;
  49. echo ".</font></td>
  50. <td><center><img src='/rywale/".$data['herb']."' height='25px' style='padding-top: 5px; padding-bottom: 5px;'></center></td>
  51. <td><a href='/druzyna.php?id=".$data['id']."' title='".$data['pelna']." - Statystyki' target='_blank'><font color='white'>".$r['nazwa']."</font></a></td>
  52. <td><center><font color='white'>".$r['ile']."</font></center></td>
  53. <td bgcolor='#006'><center><font color='white'><strong>".$r['pkt']."</strong></font></center></td>
  54. <td><center><font color='white'>".$wygrane['wygrana']."</font></center></td>
  55. <td><center><font color='white'>".$remisy['remis']."</font></center></td>
  56. <td><center><font color='white'>".$porazki['przegrana']."</font></center></td>
  57. <td><center><font color='white'>".$r['zdobyte']."</font></center></td>
  58. <td><center><font color='white'>".$r['stracone']."</font></center></td>
  59. <td><center><font color='white'>".$r['roznica']."</font></center></td>
  60. <td><center>";
  61.  
  62. echo "<table><tr>";
  63. $result4 = dbquery("SELECT * FROM tabela WHERE druzyna_id='".$r['nazwa']."' ORDER BY kolejka DESC LIMIT 0,4");
  64.  
  65. while($data4 = dbarray($result4)) {
  66. if ($data4['pkt'] == 3){
  67. echo "<td style='width: 20px; height: 20px; border-radius: 5px; background: green; border: 1px solid #fff; padding: 0px;'><center><font color='white'><a class='tooltip'><strong>Z</strong><span>".$data4['druzyna_id']." <strong>".$data4['zdobyte_bramki'].":".$data4['stracone_bramki']."</strong> ".$data4['przeciwnik_id']."<br>Data: ".$data4['data']."</span></a></font></center></td>";
  68. } else if ($data4['pkt'] == 1){
  69. echo "<td style='width: 20px; height: 20px; border-radius: 5px; background: black; border: 1px solid #fff; padding: 0px;'><center><font color='white'><a class='tooltip'><strong>R</strong><span>".$data4['druzyna_id']." <strong>".$data4['zdobyte_bramki'].":".$data4['stracone_bramki']."</strong> ".$data4['przeciwnik_id']."<br>Data: ".$data4['data']."</span></a></font></center></td>";
  70. } else if ($data4['pkt'] == 0){
  71. echo "<td style='width: 20px; height: 20px; border-radius: 5px; background: red; border: 1px solid #fff; padding: 0px;'><center><font color='white'><a class='tooltip'><strong>P</strong><span>".$data4['druzyna_id']." <strong>".$data4['zdobyte_bramki'].":".$data4['stracone_bramki']."</strong> ".$data4['przeciwnik_id']."<br>Data: ".$data4['data']."</span></a></font></center></td>";
  72. }
  73. }
  74. echo "</tr></table>";
  75. echo "</center></td>";
  76. echo "</tr>";
  77.  
  78. }
  79. }
  80. echo "</table>";
  81. ?>
SmokAnalog
Nie wiem czy komuś się będzie chciało analizować taki kod spaghetti.

Nie możesz podać po prostu kilku kryteriów sortowania?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.