Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Tabela
Forum PHP.pl > Forum > PHP
Domin
Mam problem ze skryptem tabeli liczacej pkt. Opis problemu: Poniższy skrypt zlicza pkt, bramki itp. drużynom i sortuje je w odpowiedniej kolejności. Wszystko działa dobrze lecz mam tylko jeden problem prz równej liczbie pkt pomiędzy drużynami powinna być brana pod uwagę bezpośrednia konfrontacja pomiędzy tymi drużynami, a więc tak drużyna która ma więcej strzeliła bramek w bezpośrednim spotkaniu powinna być wyzej. Jednak w tym skrycpie tego nie ma i nie wiem co powinno być dodane aby tak się działo?
  1. function tabela ( $table, $sezon = "04-05"){
  2. druzyny ( $table );
  3. global $druzyna;
  4. $query = "SELECT * FROM ".$table."_terminarz WHERE z='tak' and sezon='$sezon'";
  5. $result = mysql_query($query);
  6. if ($result) {
  7. $pkt = array();
  8. $wygrana = array();
  9. $remis = array();
  10. $przegrana = array();
  11. $wynik = array();
  12. while ( $row = mysql_fetch_array($result, MYSQL_ASSOC) ) {
  13.  
  14. $gosp = $row['gospodarz'] ;
  15. $gosc = $row['gosc'] ;
  16.  
  17.  
  18. if ( $row['w1'] == $row['w2'] ){
  19. $wynik[$gosp][0]+=1; //pkt
  20. $wynik[$gosp][1]+=0; // wygrana
  21. $wynik[$gosp][2]+=1; //remis
  22. $wynik[$gosp][3]+=0; // przegrana
  23.  
  24. $wynik[$gosc][0]+=1; //pkt
  25. $wynik[$gosc][1]+=0; // wygrana
  26. $wynik[$gosc][2]+=1; //remis
  27. $wynik[$gosc][3]+=0; // przegrana
  28.  
  29.  
  30. }else if ( $row['w1'] > $row['w2'] ){
  31.  
  32. $wynik[$gosp][0]+=3; // pkt
  33. $wynik[$gosp][1]+=1; // wygrane
  34. $wynik[$gosp][2]+=0; // remis
  35. $wynik[$gosp][3]+=0; // przegrane
  36.  
  37. $wynik[$gosc][0]+=0; // pkt
  38. $wynik[$gosc][1]+=0; // wygrane
  39. $wynik[$gosc][2]+=0; // remis
  40. $wynik[$gosc][3]+=1; // przegrane
  41.  
  42. } else if ( $row['w1'] < $row['w2'] ){
  43. $wynik[$gosp][0]+=0; // pkt
  44. $wynik[$gosp][1]+=0; // wygrane
  45. $wynik[$gosp][2]+=0; // remis
  46. $wynik[$gosp][3]+=1; // przegrane
  47.  
  48. $wynik[$gosc][0]+=3; // pkt
  49. $wynik[$gosc][1]+=1; // wygrane
  50. $wynik[$gosc][2]+=0; // remis
  51. $wynik[$gosc][3]+=0; // przegrane
  52.  
  53. }
  54. $wynik[$gosp][4]+=($row['w1']-$row['w2']); // roznica bramek
  55. $wynik[$gosc][4]+=($row['w2']-$row['w1']); // roznica bramek
  56.  
  57. $wynik[$gosp][5]+=$row['w1']; // bramki strzelone
  58. $wynik[$gosp][6]+=$row['w2']; // bramki stracone
  59. $wynik[$gosc][5]+=$row['w2']; // bramki strzelone
  60. $wynik[$gosc][6]+=$row['w1']; // bramki stracone
  61.  
  62. }
  63. $m=0;
  64. $aData = $wynik;
  65.  
  66. uasort( $aData , 'SortCallbackDesc' );
  67.  
  68. echo '<table width="100%" border="1" style="border-color: #7F8A7F" cellspacing="2" cellpadding="2">
  69. <tr>
  70. <td align="center"><b>Lp.</b></td>
  71. <td align="center"><b>Drużuna</b></td>
  72. <td align="center"><b>Pkt</b></td>
  73. <td align="center"><b>Wygrane</b></td>
  74. <td align="center"><b>Remisy</b></td>
  75. <td align="center"><b>Przegrane</b></td>
  76. <td align="center"><b>Strzelone</b></td>
  77. <td align="center"><b>Stracone</b></td>
  78. <td align="center"><b>Rozegrane</b></td>';
  79. $lp=1;
  80. foreach ( $aData as $key => $value ) {
  81.  
  82. echo '<tr>
  83. <td align="center">'.$lp.'</td>
  84. <td>'.$druzyna[$key].'</td>';
  85.  
  86. echo '<td align="center">'. $value[0].'</td>
  87. <td align="center">'. $value[1].'</td>
  88. <td align="center">'. $value[2].'</td>
  89. <td align="center">'. $value[3].'</td>
  90. <td align="center">'. $value[5].'</td>
  91. <td align="center">'. $value[6].'</td>';
  92.  
  93. $rozegrane = $value[1]+$value[2]+$value[3];
  94. echo '<td align="center">'. $rozegrane.'</td>';
  95.  
  96. echo '</tr>';
  97. $lp++;
  98. }
  99. echo '</table>';
  100. }else{
  101. echo "tabela niedostepny";
  102. }
  103. } // koniec funkcji
Darti
za ustawienie kolejnosci w wierszach odpowiedzialna jest funkcja
SortCallbackDesc
dostaje ona tabelę z informacjami o drużynach a nie spotkaniach, dlatego:
pomysl o funkcji dodatkowej, ktorą wywolasz po
Kod
uasort( $aData , 'SortCallbackDesc' );
i ktora sprawdzi jak przebiegla konfrontacja,
albo po prostu popraw w/w funkcje zeby uwzgledniala jako drugi warunek sortowania stosunek bramek strzelonych/straconych
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.