Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> ranking według czasów i ex aequo
p_a_wik
post 27.11.2013, 20:15:38
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 30.12.2012

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


Witam

Mam problem z wyświetleniem wyników z bazy w przypadku "ex aequo"
Tabela 'wyniki' wygląda jak poniżej:

Kod
id     impreza     zawodnik     czas
73    1    18    00:40:09
72    1    19    00:40:27
79    1    25    00:40:31
74    1    21    00:40:37
80    1    27    00:40:38
78    1    26    00:40:39
77    1    23    00:40:44
71    1    17    00:40:47
76    1    24    00:40:53
67    1    14    00:41:05
75    1    20    00:41:05
68    1    13    00:41:17
69    1    16    00:41:38
70    1    15    00:41:03
55    1    2    00:41:48
56    1    1    00:41:50
65    1    12    00:42:10
66    1    11    00:42:10
57    1    4    00:42:42
63    1    10    00:43:17
64    1    9    00:43:29
61    1    8    00:44:15
62    1    7    00:44:26
59    1    6    00:45:17
60    1    5    00:45:34


Zapytanie do bazy

  1. SELECT * , FIND_IN_SET( czas, (
  2. SELECT GROUP_CONCAT( DISTINCT czas
  3. ORDER BY czas ASC )
  4. FROM wyniki )
  5. ) AS rank
  6. FROM wyniki
  7. WHERE impreza = 1
  8. ORDER BY `rank` ASC


Wynik zapytania

Kod
id     impreza     zawodnik     czas     rank
73    1    18    00:40:09    1
72    1    19    00:40:27    2
79    1    25    00:40:31    3
74    1    21    00:40:37    4
80    1    27    00:40:38    5
78    1    26    00:40:39    6
77    1    23    00:40:44    7
71    1    17    00:40:47    8
76    1    24    00:40:53    9
67    1    14    00:41:05    10
75    1    20    00:41:05    10
68    1    13    00:41:17    11
69    1    16    00:41:38    12
70    1    15    00:41:03    13
55    1    2    00:41:48    14
56    1    1    00:41:50    15
65    1    12    00:42:10    16
66    1    11    00:42:10    16
57    1    4    00:42:42    17
63    1    10    00:43:17    18
64    1    9    00:43:29    19
61    1    8    00:44:15    20
62    1    7    00:44:26    21
59    1    6    00:45:17    22
60    1    5    00:45:34    23


Ja zrobić żeby po drugiej 10 rank równy był 12 questionmark.gif
Wtedy kolejne ex aequo będzie na 17 pozycji a w rezultacie rozdzielone będzie 25 miejsc a nie 23
Pętla do wyświetlenia wyników

  1. while ($row = mysql_fetch_array($result, MYSQL_NUM))
  2. {
  3.  
  4. $id_result = $row[0];
  5. $z_numer_startowy= $row[2]+0;
  6. $w_czas = $row[3];
  7. $rank = $row[4];
  8. }


Z góry dziękuje za podpowiedzi
Go to the top of the page
+Quote Post

Posty w temacie


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: 10.08.2025 - 03:01