Forum » Izdelava spletišč » JpGraph - izdelava grafov s PHP-jem
JpGraph - izdelava grafov s PHP-jem
![](https://static.slo-tech.com/stili/avatar_gray.gif)
Zzzzzzz ::
Pozdrav.
Imam eno nekam čudno stvar v PHP-ju. In sicer, delam neke grafe s pomočjo JpGraph objekta, ki mi pa daje neke čudne napake ven. Za primer, če uporabim spodnjo originalno kodo, dela odlično:
include ("./graph/jpgraph.php");
include ("./graph/jpgraph_bar.php");
$ydata = array(11,3,8,5);
$xdata = array(2000, 2001, 2002, 2003);
// Create the graph. These two calls are always required
$graph = new Graph(400,250,"auto");
$graph->SetScale("textlin");
$graph->img->SetMargin(30,30,40,30);
$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);
$graph->title->Set("Sample title");
$graph->title->SetFont(FF_FONT2,FS_BOLD);
// Create the linear plot
$lineplot=new BarPlot($ydata);
$lineplot->SetLegend("Data");
$lineplot->SetColor("blue");
$graph->xaxis->SetTickLabels($xdata);
// Add the plot to the graph
$graph->Add($lineplot);
// Display the graph
$graph->Stroke();
Vendar, če stvar malce predelam in uporabim svoj vir podatkov z baze in dam to v array, stvar ne funkcionira. Kaj je spremenjeno? Oglejte si spodaj:
$retVal = mysql_connect($HostName, $UserName, $Password);
mysql_select_db($Database, $retVal);
$res = mysql_query("SELECT leto, COUNT(*) AS total FROM visitors GROUP BY leto ");
$cnt = 0;
while($row = @mysql_fetch_object($res)){
$nval[$cnt++] = $row;
}
@mysql_close($retVal);
$xdata = array(); $ydata = array();
for ($i = 0; $i < count($nval); $i++) {
$xdata[] = $nval[$i]->leto;
$ydata[] = $nval[$i]->total;
}
include ("./graph/jpgraph.php");
include ("./graph/jpgraph_bar.php");
// Create the graph. These two calls are always required
$graph = new Graph(400,250,"auto");
$graph->SetScale("textlin");
$graph->img->SetMargin(30,30,40,30);
$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);
$graph->title->Set("Skupno stevilo obiskovalcev");
$graph->title->SetFont(FF_FONT2,FS_BOLD);
// Create the linear plot
$lineplot=new BarPlot($ydata);
$lineplot->SetColor("blue");
$graph->xaxis->SetTickLabels($xdata);
// Add the plot to the graph
$graph->Add($lineplot);
// Display the graph
$graph->Stroke();
In to je vse kar sem spreminjal. Zato mi sploh ni logično, zakaj dobim napako "Empty data array specified for plot. Must have at least one data point". Čeprav, oba arraya sta napolnjena, vse štima, kokr sm gledal, samo kaj za vraga mi to javlja?????
Any ideas?
Imam eno nekam čudno stvar v PHP-ju. In sicer, delam neke grafe s pomočjo JpGraph objekta, ki mi pa daje neke čudne napake ven. Za primer, če uporabim spodnjo originalno kodo, dela odlično:
include ("./graph/jpgraph.php");
include ("./graph/jpgraph_bar.php");
$ydata = array(11,3,8,5);
$xdata = array(2000, 2001, 2002, 2003);
// Create the graph. These two calls are always required
$graph = new Graph(400,250,"auto");
$graph->SetScale("textlin");
$graph->img->SetMargin(30,30,40,30);
$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);
$graph->title->Set("Sample title");
$graph->title->SetFont(FF_FONT2,FS_BOLD);
// Create the linear plot
$lineplot=new BarPlot($ydata);
$lineplot->SetLegend("Data");
$lineplot->SetColor("blue");
$graph->xaxis->SetTickLabels($xdata);
// Add the plot to the graph
$graph->Add($lineplot);
// Display the graph
$graph->Stroke();
Vendar, če stvar malce predelam in uporabim svoj vir podatkov z baze in dam to v array, stvar ne funkcionira. Kaj je spremenjeno? Oglejte si spodaj:
$retVal = mysql_connect($HostName, $UserName, $Password);
mysql_select_db($Database, $retVal);
$res = mysql_query("SELECT leto, COUNT(*) AS total FROM visitors GROUP BY leto ");
$cnt = 0;
while($row = @mysql_fetch_object($res)){
$nval[$cnt++] = $row;
}
@mysql_close($retVal);
$xdata = array(); $ydata = array();
for ($i = 0; $i < count($nval); $i++) {
$xdata[] = $nval[$i]->leto;
$ydata[] = $nval[$i]->total;
}
include ("./graph/jpgraph.php");
include ("./graph/jpgraph_bar.php");
// Create the graph. These two calls are always required
$graph = new Graph(400,250,"auto");
$graph->SetScale("textlin");
$graph->img->SetMargin(30,30,40,30);
$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);
$graph->title->Set("Skupno stevilo obiskovalcev");
$graph->title->SetFont(FF_FONT2,FS_BOLD);
// Create the linear plot
$lineplot=new BarPlot($ydata);
$lineplot->SetColor("blue");
$graph->xaxis->SetTickLabels($xdata);
// Add the plot to the graph
$graph->Add($lineplot);
// Display the graph
$graph->Stroke();
In to je vse kar sem spreminjal. Zato mi sploh ni logično, zakaj dobim napako "Empty data array specified for plot. Must have at least one data point". Čeprav, oba arraya sta napolnjena, vse štima, kokr sm gledal, samo kaj za vraga mi to javlja?????
Any ideas?
![:\](https://static.slo-tech.com/smeski/icon_rolleyes.gif)
- premaknil: darh ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
⊘ | SpaceX reusable rockets (nova tema)Oddelek: Znanost in tehnologija | 4605 (3785) | BigWhale |
» | Naloga iz Putka - UPMOddelek: Programiranje | 2252 (1588) | NejcSSD |
» | Get facebook friend listOddelek: Programiranje | 2102 (1597) | blackbfm |
» | Facebook publishOddelek: Izdelava spletišč | 1289 (810) | user4683 |
» | [php] phplotOddelek: Izdelava spletišč | 1236 (1085) | slovencl |