![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 24.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mój problem polega na tym iż nie wiem jak skonstruować zapytanie do bazy danych. Mam bowiem tabelkę z polami id, name, score, time, date. Score to wynik testu w % a time to czas rozwiązywania tego testu w s. Jestem w stanie wyświetlić zawartość tabelki (wq score) od max do min. i nie jest to chyba wielką sztuką. Tu jednak pojawia się problem, ponieważ wyniki często się powtarzają (score) natomiast czas rozwiązywania testów jest różny. Dlatego też trzeba posortować tym razem od min do max wg czasu rozwiązywania testu. Krótko mówiąc chodzi o to żeby tak skonstruować zapytanie, aby wyświetlić ranking osób, które uzyskały max wynik ( i dodatkowo w jak najkrótszym czasie). Z góry dziękuję za pomoc ![]() Ten post edytował karolusgt 7.04.2009, 13:52:47 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Ten post edytował wookieb 7.04.2009, 13:53:40 -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 24.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Chyba nie do końca o to mi chodziło!!!
Sęk w tym że wynik ma być wyświetlany od max do min i dla poszczególnych wyników dodatkowo sortowany wg czasu (od min do max) czyli odwrotnie jak to miało miejsce w przypadku wyniku. np: name: score: time: x 60% 12s x1 50% 23s x2 50% 45s x3 50% 46s .... Ten post edytował karolusgt 7.04.2009, 15:40:44 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
No a przeciez taki order BY jaki ci dałem tak sortuje
Najpierw sortuje wynik od nawiekszego do najmniejszego. A nastepnie jezeli jakis wyniki beda takie same to posortuje je według czasu. Czyli jednym słowem "Czy sprawdziłeś jak to działa?" Jak tak to pokaż zapytanie i przykładowe wyniki jakie otrzymujesz. P.s. Po time Możesz dodać jeszcze ASC Ten post edytował wookieb 7.04.2009, 15:50:19 -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 24.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
score ma byc DESC, time ma być ASC dla poszczególnych wyników. Wyniki mają być malejąco i dla poszczególbych wyników czas ma być rosnąco. Dodałem ASC ale nie działa SQL wyrzuca błąd w zapytaniu
![]() Ten post edytował karolusgt 7.04.2009, 15:54:22 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Pokaż zapytanie.
Wiem o co ci chodzi, jednakże teraz któryś z parametrów musi być ważniejszy (dlatego takie ułożenie w order by) i jeżeli zastosowałeś tak zapytanie jak podałem to dostałeś rekordy w takiej kolejności jak dałeś w przykładzie. A jeżeli masz rekordy takie: score;time 60; 11 50; 10 To jak je chcesz ułożyć? Ten post edytował wookieb 7.04.2009, 15:57:46 -------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 24.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Mam takie zapytanie:
$query1 = "SELECT * from network_easy order by score DESC, time ASC"; Wynik jest następujący: Nick Wynik(%) Czas(s) kg 50 15 kg 40 13 kg 40 13 kg 30 11 kg 30 11 kg 20 11 kg 20 11 kfre 10 10 kg 10 13 jh 10 5 kg 0 12 kg 0 2 utr 0 3 kg 0 4 Przy 10% widać że osoba która zrobiła test w 13sekund jest lepsza niz osoba która zrobiła to samo w 5 sekund. Jak widać sortuje wyniki dobrze, jednak nie sortuje poszczególnych wyników wq czasu rozwiązania. Nie wiem jak to przeskoczyć ![]() PS: Sorki jeśli trochę mało czytelne Ten post edytował karolusgt 7.04.2009, 16:08:16 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
a pole "czas" w bazie to ty trzymasz jako tekst czy jako liczba? Bo mam nieodparte wrazenie ze jako tekst....
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 24.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Heh... faktycznie był VARCHAR. Z góry dzięki za pomoc i sorki że marudziłem
![]() Zapraszam na Piwo do Olsztyna. ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 05:28 |