Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Automatyczna zmiana danych na wykresie.
Forum PHP.pl > Forum > Przedszkole
brzanek
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?
rogal_81
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())
brzanek
Super wielkie dzięki działa.

Mam jeszczy pytanie jak automatycznie wyciągać z tego rekordy z bieżącego miesiąca?
rogal_81
Analogicznie jak z poprzedniego:

Kod
SELECT * FROM choszczno WHERE MONTH(data) = MONTH(CURRENT_DATE()) AND YEAR(data) = YEAR(CURRENT_DATE())
brzanek
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.