Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Klasyfikacja czasow
Forum PHP.pl > Forum > Przedszkole
licha
Witam. W ramach nauki php tworzę sobie "menadżera F1" i tak jakoś się zablokowałem na klasyfikacji kierowców po klasyfikacjach.
mam tabele w bazie danych z taką strukturą:
id gracz typ(np trening, kwalifikacje1,2) proba( licznik w treningach) czas(czysty czas bez bledu kierowcy) blad(blad kierowcy) czasz(czas z bledem ten wlasciwy) i kilka innych rekordów nie związanych z moim problemem.

teraz mam np 20 graczy którzy zrobili obaj czasy z typem zarówno 2( Kwalifikacje 1) jak i z typem 2 ( kwalifikacje 2) jak ich teraz wypisać w 3 tabelach. W jednej chciałbym wypisać klasyfikacje generalną tylko z czasem 1 kwalifikacji w kolejnej z czasem 2 klasyfikacji a w ostatniej właściwą klasyfikację z oboma czasami razem zliczonymi. W jaki sposób osiągnąć taki efekt. Liczę tylko na pomysły i drobne rady.
Ripper
Cytat
teraz mam np 20 graczy którzy zrobili obaj czasy z typem zarówno 2( Kwalifikacje 1) jak i z typem 2 ( kwalifikacje 2) jak ich teraz wypisać w 3 tabelach. W jednej chciałbym wypisać klasyfikacje generalną tylko z czasem 1 kwalifikacji w kolejnej z czasem 2 klasyfikacji a w ostatniej właściwą klasyfikację z oboma czasami razem zliczonymi. W jaki sposób osiągnąć taki efekt. Liczę tylko na pomysły i drobne rady.


Najprościej zrób 3 osobne zapytania.
W pierwszy dodaj WHERE `typ`='kwalifikacja1' (rozumiem, że wtedy czas tyczy się kwalifikacji #1?).
W drugim dodaj WHERE `typ`='kwalifikacja2'
W trzecim zgrupuj używając GROUP BY `gracz` a przy SELECTcie daj SUM(`czas_ktory_chcesz`) (tylko pytanie jak trzymasz czas... Jeśli w jakiejś własnej formie to może nie działać).


Zakładam, że dane w bazie trzymasz tak (pominąłem niepotrzebne kolumny):
Kod
id | gracz | typ | czas
1 | gracz1 | kwalifikacja1 | 5:30 (czy coś takiego)
2 | gracz2 | kwalifikacja1 | 4:56
3 | gracz1 | kwalifikacja2 | 5:21
4 | gracz2 | kwalifikacja2 | 5:01
licha
wyciągnąć czasy i zsumować je potrafię ale jak je posegregować jak mam czasy 20 zawodników ?
Jinbe
Cytat(licha @ 21.09.2012, 06:56:44 ) *
wyciągnąć czasy i zsumować je potrafię ale jak je posegregować jak mam czasy 20 zawodników ?


Dzięki dodaniu ORDER BY na końcu zapytania SQL? Ewentualnie możesz wczytać dane do osobnych tablic $gracz, $typ, $czas i sortować sobie w PHP z pomocą array_multisort. Wtedy pobierasz wszystkie dane z bazy jednym zapytaniem, a operujesz już nimi na poziomie PHP tak, jak Ci się podoba.
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.