![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 377 Pomógł: 9 Dołączył: 2.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
Cześć mam taki problem: pobieram całą zawartość jednej bazy danych i wyświetlam ją za pomocą petli while (później tworzę jeszcze obrazek z tych wyników ale to nie aż tak ważne) i chciałbym posortować te wyniki od najlepszego do najgorszego (ORDER BY `czas` ASC) ale chciałbym obliczyć różnice między pierwszym wynikiem (Najlepszym), a każdym z kolejnych np.:
Pierwsza osoba ma taki czas: 1:24,145, a druga osoba ma taki czas: 1:24,170, to wyświetli się + 0:00,025, a trzecia osoba ma czas np.: 1:25,000 to się wyświetli +0:00,885 itd. Później wszystkie te czasy w mysql mam zapisane w postaci: mm:ss:mss - mm - Minuty, ss - Sekundy, mss - Milisekundy i później chce to wszystko wgrać na obrazek za pomocą imagettftext (gd) Ma ktoś jakiś pomysł ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 221 Pomógł: 20 Dołączył: 4.05.2006 Skąd: Polska Ostrzeżenie: (0%) ![]() ![]() |
select dana1-dana2 as roznica
echo roznica ![]() edit. po dokładnym przeczytaniu zamiast dana1 umieść podzapytanie select która wyciąga najlepszy czas Ten post edytował Swirek 14.10.2011, 12:05:51 -------------------- Macho odpadacie ;) .
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 377 Pomógł: 9 Dołączył: 2.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
No tak, ale takie mam czasy:
1:24,145 1:24,165 1:24,170 1:25,100 Wiec mi to nie zadziała, a do tego dochodzi coś takiego. 1 Osoba - ta najlepsza bedzie miała +0:00,000 to wiadomo, kolejna np bedzie miał 0:00,030 kolejna już 0:00,040 jak to przegrupować do danej osoby Edit.: Samo wyciągnięcie najszybszego wyniku jest łatwe: ORDER BY `czas` ASC LIMIT 1 i mam najszybszy czas, teraz jak go zamienić na sekundy czyli z postaci 1:24:145 zrobić 84,145 sekund ? Taki mi przyszedł pomysł: rozdzielić to na : i , przez explode i później if jeśli (min) = 1 to zamień go na 60 i dodać do tej drugiej cześci i po przecinku ms, dobre by to było rozwiązanie czy jest jakieś optymalniejsze ? Ten post edytował Giluś 14.10.2011, 12:11:51 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 221 Pomógł: 20 Dołączył: 4.05.2006 Skąd: Polska Ostrzeżenie: (0%) ![]() ![]() |
wyciągaj sobie odpowiednie liczby za pomocą np preg_match wyciągnij minuty, sekundy, milisekundy
minuty parametrem razy 60sec itd. musisz to przerobić na "bardziej przyswajalną formę" ja to tak widzę albo zapisuj czas w unixowym zapisie pomoże myślę też funkcja microtime() Ten post edytował Swirek 14.10.2011, 12:16:11 -------------------- Macho odpadacie ;) .
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 377 Pomógł: 9 Dołączył: 2.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
Czyli mniej więcej coś takiego:
Tak to ma być ? Po lekkich modyfikacjach zrobiłem Pomógł poleciał ![]() Ten post edytował Giluś 14.10.2011, 13:09:20 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 01:07 |