Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Wstawianie wykresu na stronie na podstawie danych z bazy
Forum PHP.pl > Forum > Przedszkole
AlKhalif
ma wykonany kod pobierający informacje z bazy danych i sumujący je na podstawie miesięcy. Chciałbym je wstawić do wykresu jaki znalazłem w internecie, ale nie wiem jak je wstawić w miejsce przykładowych liczb z pobranego wykresu. Chciałbym też aby wykres pokazywał mi tylko np. ostatnie 12 miesięcy.

Oto kod pobierający dane:

  1. require_once "config/dbinfo.php";
  2. $connect = mysqli_connect($host, $db_user, $db_password, $db_name);
  3. if(mysqli_connect_errno())
  4. {
  5. echo "wystopil bald polanczenia z baza";
  6. }
  7. else
  8. {
  9.  
  10. $wypisz="SELECT SUM(suma) FROM vssaction GROUP BY Month(data)";
  11.  
  12. $wynik= mysqli_query($connect, $wypisz)
  13. or die('Błąd zapytania');
  14. while($r= mysqli_fetch_array($wynik))
  15. {
  16. echo $r['SUM(suma)'].'<br>';
  17. }
  18. }
  19. mysqli_close($connect);

A to przykładowy skrypt tego wykresu pobrany z internetu

  1. <?php
  2. include_once(&#8218;./LabChartsLine.php’);
  3. $LabChartsLine = new LabChartsLine();
  4. $LabChartsLine->setData(array(27,25,60,31,25,39,25,31,26,28,8,28,27,31,27,29,26,35,70,25));
  5. echo &#8218;<img src=”‚.$LabChartsLine->getChart().‚” />’;
  6. ?>

Jak podstawić pobrane dane w miejsce tych liczb w $LabChartsLine?

Mam jeszcze taki kod w którym są ustawione miesiące

  1.  
  2. <?php
  3. $LabChartsLine->setColors(&#8218;D9351C’);
  4. $LabChartsLine->setSize(&#8217;400×250′);
  5. $LabChartsLine->setTitle(&#8218;Zyski w poszczególnych miesiącach’);
  6. $LabChartsLine->setAxis (10, &#8218;Sty||Mar||Maj||Lip||Wrz||Lis||Sty||Mar||Maj||Lip|’);
  7. $LabChartsLine->setGrids (10);
  8. echo &#8218;<img src=”‚.$LabChartsLine->getChart().‚” />’;
  9. ?>

Jak go przerobić aby wyświetlał tylko kilka ostatnich miesięcy?[php][/php]
Kshyhoo
Dane wrzucasz tu:
  1. $LabChartsLine->setData(array(27,25,60,31,25,39,25,31,26,28,8,28,27,31,27,29,26,35,70,25));

Chyba nie problem?
  1. while($r= mysqli_fetch_array($wynik)) {
  2. $LabChartsLine->setData(array($r["miesiac"]));
  3. }
AlKhalif
Cytat(Kshyhoo @ 22.11.2016, 18:58:45 ) *
Dane wrzucasz tu:
  1. $LabChartsLine->setData(array(27,25,60,31,25,39,25,31,26,28,8,28,27,31,27,29,26,35,70,25));

Chyba nie problem?
  1. while($r= mysqli_fetch_array($wynik)) {
  2. $LabChartsLine->setData(array($r["miesiac"]));
  3. }


Ale to nie zrobi tak, że utworzy mi masę zmiennych tej samej nazwie? Bo jeśli treść $LabChartsLine->setData(array jest wewnątrz pętli to za każdym rekordem ją powtórzy.
Kshyhoo
Nie musisz cytować całej mojej wypowiedzi.
Wpierw sprawdź a potem narzekaj.
AlKhalif
Nie działa i nie zwraca żadnych komunikatów.
nospor
@Ksyhoo ty jak czasami cos palniesz bez zastanowienia....

@AlKhalif Dane masz wpierw wlozyc do tablicy

  1. $arr = array();
  2. while($r= mysqli_fetch_array($wynik))
  3. {
  4. $arr[]=$r['SUM(suma)'];
  5. }


A te tablice potem w miejsce danych wpisanych z palca:

  1. $LabChartsLine->setData($arr);
Kshyhoo
Cytat(nospor @ 22.11.2016, 21:35:15 ) *
@Ksyhoo ty jak czasami cos palniesz bez zastanowienia....

Wzorowałem się na miszczach.
nospor
To jak juz sie wzorujesz na miszczach, to rob to troche dokladniej
Czy naprawde uwazasz, ze te metody
addPoints()
setData()

robia to samo? Bo wg mnie nazwy dosc wyraznie mowia co robi kazda z tych metod a co za tym idzie kiedy i jak mozna ich uzywac

ps: pozatym czemu uznales ze kod dla pCHart bedzie dzialac dla LabChart?
Boshi
Cytat(Kshyhoo @ 22.11.2016, 21:49:34 ) *
Wzorowałem się na miszczach.


addpoints nie przyjmuje tablicy zapewne a skalary w przeciwieństwie do setData. Dlatego to na czym się wzorowałeś ma prawo działać ustawiajac punkty w przestrzeni.

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.