Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Wynik / statystyki, jw
miras
post
Post #1





Grupa: Zarejestrowani
Postów: 1 004
Pomógł: 9
Dołączył: 18.01.2011
Skąd: Siedlce

Ostrzeżenie: (30%)
XX---


Witam, problem czysto teoretyczny, bo nie wiem jak się za to zabrać od strony kodu.

Są 4 drużyny - A, B, C i D


Drużyna A pokonała wszystkie pozostałe drużyny, więc zajmuje pierwsze miejsce.

Drużyna B przegrała z drużyną D.

Drużyna B wygrała z drużyną C.

Drużyna C wygrała z drużyną D.


Końcowe statystyki powinny być takie:

1. A
2. B
3. C
4. D


ma ktoś pomysł na jakiś algorytm czy coś? dodam jeszcze, że mam w bazie wyniki wszystkich tych meczy (dokładne punkty) - jeżeli to coś pomoże.

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
miras
post
Post #2





Grupa: Zarejestrowani
Postów: 1 004
Pomógł: 9
Dołączył: 18.01.2011
Skąd: Siedlce

Ostrzeżenie: (30%)
XX---


W takim razie zapodaje kod, który napisałem, ale nie działa do końca poprawnie, może ktoś z Was mnie nakieruje, bo niedługo osiwieje ;>

  1.  
  2. public function clubs() {
  3. $query = $this->mysqli->prepare("SELECT meczid, klubid, punkty, zdobyte, stracone, w, p, kolejkaid FROM tabele");
  4. $query->bind_result($meczid, $klubid, $punkty, $zdobyte, $stracone, $w, $p, $kolejkaid);
  5. $query->execute();
  6. $query->store_result();
  7. $count = $query->num_rows;
  8.  
  9. if($count == 0)
  10. {
  11. $query->close();
  12.  
  13. return false;
  14. }
  15. else
  16. {
  17.  
  18.  
  19. while($query->fetch())
  20. {
  21. $data[$klubid]['rozegrane'] = $data[$klubid]['rozegrane']+1;
  22. $data[$klubid]['zwyciestwa'] = $data[$klubid]['zwyciestwa']+$w;
  23. $data[$klubid]['porazki'] = $data[$klubid]['porazki']+$p;
  24. $data[$klubid]['punkty'] = $data[$klubid]['punkty']+$punkty;
  25. $data[$klubid]['zdobyte'] = $data[$klubid]['zdobyte']+$zdobyte;
  26. $data[$klubid]['stracone'] = $data[$klubid]['stracone']+$stracone;
  27. $data[$klubid]['kid'] = $klubid;
  28.  
  29.  
  30.  
  31. }
  32.  
  33.  
  34.  
  35.  
  36. function compare($a, $b)
  37. {
  38. if($a['punkty'] == $b['punkty']) {
  39. $z = new Basket;
  40. $tab = $z->get_winner($a['kid'], $b['kid']);
  41. return ($tab[0] < $tab[1]) ? 1 : -1;
  42. } else {
  43. return ($a['punkty'] < $b['punkty']) ? 1 : -1;
  44. }
  45. }
  46.  
  47.  
  48.  
  49. usort($data, 'compare');
  50.  
  51.  
  52.  
  53. $query->close();
  54.  
  55. return $data;
  56. }
  57. }
  58.  
  59.  
  60.  
  61.  
  62.  
  63. public function get_winner($a, $b) {
  64. $query = $this->mysqli->prepare("SELECT id, meczid, klubid, punkty, zdobyte, stracone, w, p FROM tabele WHERE klubid = ?");
  65. $query->bind_param("i", $a);
  66. $query->bind_result($id, $meczid, $klubid, $punkty, $zdobyte, $stracone, $w, $p);
  67. $query->execute();
  68. $query->store_result();
  69. $count = $query->num_rows;
  70.  
  71. if($count == 0)
  72. {
  73. $query->close();
  74.  
  75. return false;
  76. }
  77. else
  78. {
  79.  
  80. while($query->fetch()) {
  81. $query1 = $this->mysqli->prepare("SELECT id, meczid, klubid, punkty,zdobyte, stracone, w, p FROM tabele WHERE klubid = ? AND meczid = ?");
  82. $query1->bind_param("ii", $b, $meczid);
  83. $query1->bind_result($id1, $meczid1, $klubid1, $punkty1, $zdobyte1, $stracone1, $w1, $p1);
  84. $query1->execute();
  85. $query1->store_result();
  86. $count = $query1->num_rows;
  87.  
  88.  
  89. if($count > 0) {
  90. while ($query1->fetch()) {
  91.  
  92. $tab[0] = $zdobyte;
  93. $tab[1] = $zdobyte1;
  94. return $tab;
  95.  
  96.  
  97. }
  98. }
  99.  
  100. }
  101. }
  102. }



Wynikiem tego kodu jest:
1. A
2. B
3. D
4. C
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 27.12.2025 - 15:22