![]() |
![]() ![]() |
![]() |
![]() ![]()
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
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 ![]() 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
Z góry dziękuje za podpowiedzi |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 045 Pomógł: 141 Dołączył: 19.09.2006 Skąd: B-tów Ostrzeżenie: (0%) ![]() ![]() |
najłatwiej będzie zrobić order by czas a w php
przed pętlą $rank=0; w pętli $rank++; |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 30.12.2012 Ostrzeżenie: (0%) ![]() ![]() |
ale o ile dobrze rozumiem jak dam $rank++;
i pętle to nie będzie ex aequo tylko będzie 10, 11 przy tych samych czasach a nie o to tutaj chodzi |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Ja to robię np. tak (zakładam, że pole z czasem nazywa się "czas"):
Ten post edytował SmokAnalog 27.11.2013, 22:31:06 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 045 Pomógł: 141 Dołączył: 19.09.2006 Skąd: B-tów Ostrzeżenie: (0%) ![]() ![]() |
to dodaj sobie jeszcze $lastTime =null;
a w pętli if($lastTime!=$row[2]) { $rank++; } $lastTime=$row[2]; |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
to dodaj sobie jeszcze $lastTime =null; a w pętli if($lastTime!=$row[2]) { $rank++; } $lastTime=$row[2]; To też nie będzie dobrze, bo wyniki sportowe liczy się tak: Kod 1) 2:14 2) 2:16 2) 2:16 4) 2:21 5) 2:22 A Ty proponujesz takie coś: Kod 1) 2:14
2) 2:16 2) 2:16 3) 2:21 4) 2:22 |
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Musisz mieć 2 zmienne sterujące: $x do zliczania pozycji (zawsze inkrementujesz) oraz $y do wyświetlania pozycji (zwiększasz gdy aktualny wynik jest inny od poprzedniego). Musisz również w którymś momencie/sytuacji przypisać $y = $x. Kombinuj
![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.06.2025 - 23:00 |