![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 218 Pomógł: 0 Dołączył: 14.04.2004 Skąd: Słupsk, Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
Chodzi o to, że z bazy chcę pobrać dane do wykresu... w bazie są dane posegregowane po czasie (unix_timestamp), ale nie są regularne... tzn czasem są co minutę, czasem co godzinę, a czasem nie ma przez miesiąc...
kiedy chcę pobrać sobie dane na dowolny moment, to po prostu daję to: "SELECT `wartosc` FROM `dane` WHERE `czas`<=$czas ORDER BY `czas` DESC;" i w ten sposób dostaję ostatnią znaną wartość na podany czas... problem się robi wtedy, kiedy chce zrobić z tego wykres... i np. 100 takich danych dla różnych czasów chcę uzyskać... jak to zrobić w jednym zapytaniu, a nie w 100? Przyszło mi do głowy, by stworzyć podzapytanie dzielące $czas przez interwal jaki potrzebuję, wtedy po zaokrągleniu kolejne czasy będą kolejnymi intami... i wtedy zrobić WHERE BETWEEN, ale nie wiem czy to dobry trop i to się tak robi, czy może należy spróbować czegoś bardziej sensownego... Przy czym nadal nie wiem jak uzyskać "komplet" danych... że jak nie ma danej dla danego czasu, to ma zwrócić ostatni poprzedni... pozdrawiam, Phoenix Ten post edytował phoenix84 3.09.2016, 14:09:11 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 218 Pomógł: 0 Dołączył: 14.04.2004 Skąd: Słupsk, Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
Teoretycznie w bazie dla tego samego czasu musi być ten sam wynik i nie powinien się zdarzyć taki dubel... no chyba, że zrobimy ten numer z dzieleniem przez interwal... ale zakladajac czarny scenariusz, zawsze bierzemy najnowszy czyli najpozniejszy spelniajacy warunek...
Dla 05:00 będzie to D, a dla 10:00 E. Przy interwale 5 minut nie ma problemu, bo wszystkie godziny są podzielne przez 5 minut (IMG:style_emoticons/default/smile.gif) ... Na wszelki wypadek dam przykład dla godzin, gdzie to ma znaczenie: Przykład: 05:00 A 05:00 B 05:00 C 05:00 D 07:00 E 15:00 F 15:00 G Dla 6:59 będzie to D, dla 07:00 E, dla 07:01 E ... dla 14:59 E, dla 15:00 G, dla 15:01 G Mam nadzieję, że teraz jasne. Dziękuję. phoenix84 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 06:53 |