Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Automatyczna zmiana danych na wykresie.
brzanek
post 14.09.2015, 18:29:46
Post #1





Grupa: Zarejestrowani
Postów: 429
Pomógł: 0
Dołączył: 8.11.2012

Ostrzeżenie: (0%)
-----


Witam do wykresu pobierane są dane z bazy danych MySQL dla danego dnia ale z poprzednich lat.
W bazie danych mam dane o temperaturze maksymalnej i minimalnej dla danego miasta od 2000 roku. Chcę je wyświetlić na wykresie ale np dla dzisiejszego dnia czyli 14.09.2015 aby dane były z tergo dnia ale z poprzednich lat czyli
14.09.2014
14.09.2013
14.09.2012
itp aż do 2000 roku.
Za pomocą kodu
  1. <?php
  2. $con=mysql_connect('localhost','user','pass');
  3. mysql_query("SET NAMES utf8");
  4. mysql_select_db("brzanek_podsumowania", $con);
  5.  
  6.  
  7.  
  8. $query = mysql_query("SELECT * FROM choszczno WHERE `data` LIKE '%-09-14%'");
  9.  
  10. $category = array();
  11. $category['name'] = 'Data';
  12.  
  13. $series1 = array();
  14. $series1['name'] = 'Tempmax';
  15.  
  16. $series2 = array();
  17. $series2['name'] = 'Tempmin';
  18.  
  19. $series3 = array();
  20. $series3['name'] = 'Opady';
  21.  
  22.  
  23. while($r = mysql_fetch_array($query)) {
  24. $category['data'][] = $r['data'];
  25. $series1['data'][] = $r['tempmax'];
  26. $series2['data'][] = $r['tempmin'];
  27. $series3['data'][] = $r['opady'];
  28. }
  29.  
  30. $result = array();
  31. array_push($result,$category);
  32. array_push($result,$series1);
  33. array_push($result,$series2);
  34. array_push($result,$series3);
  35.  
  36.  
  37. print json_encode($result, JSON_NUMERIC_CHECK);
  38.  
  39. ?>

Pobieram dane dla dzisiejszego dnia ale jutro już nie pobierze mi się automatycznie dla daty
15.09.2014
15.09.2013
itd.
Musiał bym za każdym razem w pliku zmieniać
LIKE '%-09-14%' na LIKE '%-09-15%' itd
Jak mogę to zautomatyzować aby automatycznie pobierał mi dane z odpowiednich dat?
Wiem że można zastosować
SELECT * FROM choszczno WHERE DATE(data)=CURDATE() - interval 1 year
SELECT * FROM choszczno WHERE DATE(data)=CURDATE() - interval 2 year
itp.
Ale jak to dodać do zapytania w tym pliku?
Go to the top of the page
+Quote Post
rogal_81
post 14.09.2015, 19:53:40
Post #2





Grupa: Zarejestrowani
Postów: 15
Pomógł: 2
Dołączył: 22.05.2013

Ostrzeżenie: (0%)
-----


Staraj się nie używać LIKE dla column typu date
Tutaj masz gotowca. Jakbyś czegoś nie rozumiał to daj znać.

Kod
SELECT * FROM choszczno WHERE MONTH(data) = MONTH(CURRENT_DATE()) AND DAY(data) = DAY(CURRENT_DATE())
Go to the top of the page
+Quote Post
brzanek
post 15.09.2015, 10:21:04
Post #3





Grupa: Zarejestrowani
Postów: 429
Pomógł: 0
Dołączył: 8.11.2012

Ostrzeżenie: (0%)
-----


Super wielkie dzięki działa.

Mam jeszczy pytanie jak automatycznie wyciągać z tego rekordy z bieżącego miesiąca?
Go to the top of the page
+Quote Post
rogal_81
post 16.09.2015, 20:03:25
Post #4





Grupa: Zarejestrowani
Postów: 15
Pomógł: 2
Dołączył: 22.05.2013

Ostrzeżenie: (0%)
-----


Analogicznie jak z poprzedniego:

Kod
SELECT * FROM choszczno WHERE MONTH(data) = MONTH(CURRENT_DATE()) AND YEAR(data) = YEAR(CURRENT_DATE())
Go to the top of the page
+Quote Post
brzanek
post 4.10.2015, 10:25:26
Post #5





Grupa: Zarejestrowani
Postów: 429
Pomógł: 0
Dołączył: 8.11.2012

Ostrzeżenie: (0%)
-----


Wielkie dzięki ale mam jeszcze problem z załadowaniem najwyższych i najniższych wartości w danym miesiącu.

Witam nadal nie wiem jak wyciągnąć najwyższe i najniższe wartości z każdego miesiąca tego roku.
Kombinowałem na wszystkie sposoby ale nie wychodzi mi.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 14:45