Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wykresy w PHPLOT dzialaja ale nie do końca
Forum PHP.pl > Forum > Przedszkole
krzyszbi
witam wszystkich

zachciało sie przez php ronic wykresy wiec poszukałem na necie opisów i bibliotek i znalazłem
ale teraz mam następujacy problem
jak przekazać do klasy która twoży wykresy dane w postaci tablicy
jak robie w następujacy sposób
  1. <?php
  2.  $url="localhost";
  3. $uzyt="xxxx";
  4. $haslo="xxxx";
  5. $b_danych="uszki";
  6. @ mysql_connect($url,$uzyt,$haslo) or die ("Nie mozna polaczyc sie z baza danych");
  7. mysql_select_db($b_danych);
  8. $query = "SELECT * FROM umowy";
  9. $result = mysql_query ($query);
  10. $wartosc = 0;
  11. $data = array(
  12.  array('a',0,0,0),
  13. );
  14. echo $data[0][0].'&nbsp;,&nbsp;'.$data[0][1].'&nbsp;,&nbsp;'.$data[0][2].'&nbsp;,&nbsp;'.$data[0][3];
  15. echo'<br />';
  16.  
  17. while ($row = mysql_fetch_array($result))
  18. {
  19.  
  20.  $query1 = "SELECT * FROM komsultanci WHERE id_k=".$row['id_k'];
  21.  $result1 = mysql_query ($query1);
  22.  $row1=mysql_fetch_array($result1);
  23.  if ($row['id_k']==1)
  24. {
  25.  $data[0][1] = $data[0][1] + $row['kwota'];
  26.  $legenda[0] = $row1['imie'].' '.$row1['nazwisko'];
  27. }
  28.  elseif ($row['id_k']==2)
  29. {
  30.  $data[0][2] = $data[0][2] + $row['kwota'];
  31.  $legenda[1] = $row1['imie'].' '.$row1['nazwisko'];
  32. }
  33.  elseif ($row['id_k']==3)
  34. {
  35.  $data[0][3] = $data[0][3] + $row['kwota'];
  36.  $legenda[2] = $row1['imie'].' '.$row1['nazwisko'];
  37. }
  38. }
  39.  
  40. echo $data[0][0].'&nbsp;,&nbsp;'.$data[0][1].'&nbsp;,&nbsp;'.$data[0][2].'&nbsp;,&nbsp;'.$data[0][3];
  41. echo'<br />';
  42.  $example_data = $data;
  43.  global$data;
  44. ?>
  45. <img src="index5.php" border="0" />

to jest index.php
a to index5.php
  1. <?php
  2. //Include the code
  3. include('phplot.php');
  4. $example_data = $data;
  5. //Define the object
  6. $graph =& new PHPlot(800,400);
  7. $graph->SetDataType("text-data"); //Must be called before SetDataValues
  8. $graph->SetDataValues($data);
  9. $graph->SetLegend($legenda);
  10. $graph->SetLegendPixels(530,20);
  11. $graph->SetXTitle("Punkty kontrolne");
  12. $graph->SetYTitle("Wyniki sprzedawców.");
  13. $graph->SetYTickIncrement(5);
  14. $graph->SetPlotType("pie ");
  15. $graph->SetXLabelAngle(10); //have to re-set as defined above
  16. $graph->SetNewPlotAreaPixels(70,10,500,300);
  17. $graph->SetPlotAreaWorld(0,0,7,80);
  18. $graph->DrawGraph();
  19. //Print the image
  20. $graph->PrintImage();
  21. ?>


z kolei w nastepujacy sposób mi działa ale niezabardzo mi sie to podoba
  1. <?php
  2. //Include the code
  3. include('phplot.php');
  4.  
  5. //Define the object
  6. $graph =& new PHPlot(800,400);
  7.  $url="localhost";
  8. $uzyt="xxx";
  9. $haslo="xx";
  10. $b_danych="uszki";
  11. @ mysql_connect($url,$uzyt,$haslo) or die ("Nie mozna polaczyc sie z baza danych");
  12. mysql_select_db($b_danych);
  13. $query = "SELECT * FROM umowy";
  14. $result = mysql_query ($query);
  15. $wartosc = 0;
  16. $data = array(
  17.  array('a',0,0,0),
  18. );
  19. while ($row = mysql_fetch_array($result))
  20. {
  21.  
  22.  $query1 = "SELECT * FROM komsultanci WHERE id_k=".$row['id_k'];
  23.  $result1 = mysql_query ($query1);
  24.  $row1=mysql_fetch_array($result1);
  25.  if ($row['id_k']==1)
  26. {
  27.  $data[0][1] = $data[0][1] + $row['kwota'];
  28.  $legenda[0] = $row1['imie'].''.$row1['nazwisko'];
  29. }
  30.  elseif ($row['id_k']==2)
  31. {
  32.  $data[0][2] = $data[0][2] + $row['kwota'];
  33.  $legenda[1] = $row1['imie'].' '.$row1['nazwisko'];
  34. }
  35.  elseif ($row['id_k']==3)
  36. {
  37.  $data[0][3] = $data[0][3] + $row['kwota'];
  38.  $legenda[2] = $row1['imie'].' '.$row1['nazwisko'];
  39. }
  40. }
  41. $example_data = $data;
  42. $graph->SetDataType("text-data"); //Must be called before SetDataValues
  43. $graph->SetDataValues($example_data);
  44. $graph->SetLegend($legenda);
  45. $graph->SetLegendPixels(530,20);
  46. $graph->SetXTitle("Punkty kontrolne");
  47. $graph->SetYTitle("Wyniki sprzedawców.");
  48. $graph->SetYTickIncrement(5);
  49. $graph->SetPlotType("pie ");
  50. $graph->SetXLabelAngle(10); //have to re-set as defined above
  51. $graph->SetNewPlotAreaPixels(70,10,500,300);
  52. $graph->SetPlotAreaWorld(0,0,7,80);
  53. $graph->DrawGraph();
  54. //Print the image
  55. $graph->PrintImage();
  56. ?>
Tajny
sprobuj w index5.php dac global $data choc chyba to duzo nie da ;

proponuje zaczac uzywac sesji i obiektow przy tego typu operacjach.

utworz obiekt, pozniej jego instancje , a w obiekcie pobieraj dane z bazy, w samym pliku wyswietlajacym ( u ciebie index5.php ) inlcuduj klasy obiektu i jego instancje, dodaj global przy zmiennej trzymajacej instancje , wtedy zadziala na bank. Sam uzywam phplota i taka jest kolej rzeczy.
krzyszbi
witam
a może jakiś kawałek kodu co coś takiego robi
mam zamoar zacząć używać jakiejś kalcy do Mysql-a
jak dostane linka gdzie jakoś w miare przystępnie jest to przedstawione to sobie sam spróbuje reszty poszukać
z góry dzieki
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.