![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 311 Pomógł: 13 Dołączył: 7.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Hej. Mam stację meteorologiczną z trzema czujnikami, która co minutę dokonuje odczytu, przesyła to do skryptu .php który zapisuje wszystko w bazie MySQL. Później generuję z tego wykres z pomocą Chart.js (po 4 słupki na godzinę, każdy ze średnią z 15 minut)
Kod PHP wygląda tak:
Kod HTML wygląda tak: https://pastebin.com/VQPFZPKF Nie do końca podoba mi się to rozwiązanie. Raz ze względu na obciążenie - prawie 300 kwerend dla trzech czujników. Dwa że kod jest bardzo skomplikowany a to tylko wykres dla jednego dnia. Boje się pomyśleć nad tygodniem, miesiącem a może rokiem. Czy istnieje coś innego, gotowiec, który generuje dane dla Chart.js który by mi w tym pomógł? Lub może w ogóle zrezygnować z MySQLa i oprzeć to na czymś innym? -------------------- |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 803 Pomógł: 1827 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
A dlaczego aż 300 kwerend?
Skoro generujesz dane z jakichś interwałów czasowych określonych w PHP, to możesz równie dobrze generować wyniki w SQL z większego zakresu czasowego i grupować według określonych przedziałów. -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 311 Pomógł: 13 Dołączył: 7.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
W sensie pobierać z SQLa w całości i grupować po stronie skryptu PHP?
Jakiś przykładowy kod na to? -------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 803 Pomógł: 1827 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Grupować po stronie SQL.
-------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 311 Pomógł: 13 Dołączył: 7.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
A jak grpować pole typu DATETIME przedziałami po 15 minut? Czy musiałbym przemodelować bazę danych i dorzucić kolejne pole oznaczające np. kolejny kwadrans doby?
-------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 803 Pomógł: 1827 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
W zależności do którego kwadransu (bliższego/dalszego) ma wpadać czas możesz użyć CEIL lub FLOOR. -------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 311 Pomógł: 13 Dołączył: 7.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki, takie zapytanie rozwiązuje mój problem:
Klikam pomógł -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 27.06.2025 - 22:36 |