Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Sortowanie w tabeli piłkarskiej
adams1692
post 6.06.2018, 12:48:35
Post #1





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 4.04.2013
Skąd: Uniejów

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
SmokAnalog
post 6.06.2018, 21:06:29
Post #2





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Nie wiem czy komuś się będzie chciało analizować taki kod spaghetti.

Nie możesz podać po prostu kilku kryteriów sortowania?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.04.2024 - 04:20