Grafici e PHP

ivarello

Utente Attivo
14 Dic 2012
211
1
16
Ragazzi sto cercando di fare un grafico con php prendendo dati dal database ma sto incappando in una moltitudine di problemi.
Iniziamo da primo, vorrei ultilizzare PHPGraphLib, che finche si usa un il codice originale tipo:

PHP:
<?php
include('phpgraphlib.php');
$graph = new PHPGraphLib(900,300);
$data2 = array("1" => .0300, "2" => .0028, "3" => .0021, "4" => .0033, 
"5" => .0034, "6" => .0031, "7" => .0036, "8" => .0027, "9" => .0024, 
"10" => .0021, "11" => .0026, "12" => .0024, "13" => .0036, 
"14" => .0028, "15" => .0025);
$graph->addData($data2);
$graph->setTitle('PPM Per Container');
$graph->setBars(false);
$graph->setLine(true);
$graph->setDataPoints(true);
$graph->setDataPointColor('maroon');
$graph->setDataValues(true);
$graph->setDataValueColor('maroon');
$graph->setGoalLine(.0025);
$graph->setGoalLineColor('red');
$graph->createGraph();
?>

ma appena si aggiunge una cosa tipo:

PHP:
<?php
include('phpgraphlib.php');
$graph = new PHPGraphLib(900,300);
$data2 = array("1" => .0300, "2" => .0028, "3" => .0021, "4" => .0033, 
"5" => .0034, "6" => .0031, "7" => .0036, "8" => .0027, "9" => .0024, 
"10" => .0021, "11" => .0026, "12" => .0024, "13" => .0036, 
"14" => .0028, "15" => .0025);
echo 'porca miseria'; //---------------------------inserimento casuale
$graph->addData($data2);
$graph->setTitle('PPM Per Container');
$graph->setBars(false);
$graph->setLine(true);
$graph->setDataPoints(true);
$graph->setDataPointColor('maroon');
$graph->setDataValues(true);
$graph->setDataValueColor('maroon');
$graph->setGoalLine(.0025);
$graph->setGoalLineColor('red');
$graph->createGraph();
?>

non funziona più soprattutto se provo a tirare fuori dati da un database, qualcuno può darmi un consiglio? vorrei raggruppare le registrazioni per mese e metterle a grafico ;)
 
Dato che viene renderizzato come un immagine o generi il grafico in una pagina a parte oppure ti salvi l'immagine e cambi il content-type nell'header

esempio
PHP:
ob_start();
include('phpgraphlib.php'); 
$graph = new PHPGraphLib(900,300); 
$data2 = array("1" => .0300, "2" => .0028, "3" => .0021, "4" => .0033,  
"5" => .0034, "6" => .0031, "7" => .0036, "8" => .0027, "9" => .0024,  
"10" => .0021, "11" => .0026, "12" => .0024, "13" => .0036,  
"14" => .0028, "15" => .0025); 
$graph->addData($data2); 
$graph->setTitle('PPM Per Container'); 
$graph->setBars(false); 
$graph->setLine(true); 
$graph->setDataPoints(true); 
$graph->setDataPointColor('maroon'); 
$graph->setDataValues(true); 
$graph->setDataValueColor('maroon'); 
$graph->setGoalLine(.0025); 
$graph->setGoalLineColor('red'); 
$graph->createGraph(); 
$image = ob_get_contents();
file_put_contents("image.jpg",$image);
ob_end_clean();
header("Content-type: text/html");
echo 'Porca miseria <br><img src="image.jpg">';
 
Grazie ho risolto in parte con il codice così:

PHP:
<?php
include("phpgraphlib.php");
$graph=new PHPGraphLib(1900,500); 

require '../../include/config.php';
require '../../include/connect.php';
  
$dataArray=array();
  
//get data from database
$da=mktime(0,0,0,1,1,2011);//qui probabilmente devi provare se va bene 31 o 30 o 28 o 29 in funzione del mese 
$a=mktime(23,59,59,12,31,2011); 
$sql="select *, count(data_attivazione) as conteggio FROM utenti WHERE  data_attivazione >= $da AND data_attivazione <= $a GROUP BY data_attivazione ORDER BY data_attivazione ASC";
$result = mysql_query($sql) or die('Query failed: ' . mysql_error());
if ($result) {
  while ($row = mysql_fetch_assoc($result)) {
      $count=$row["data_attivazione"];
	  $conteggio=$row["conteggio"];
	  $data2 = date("d/m/Y",$count);
	  $p = explode("/",$data2);
	  $nome_mese = $p[1];
	  $nome_anno = $p[2];
      //add to data areray
      $dataArray[$p[0].'/'.$nome_mese.'/'.$nome_anno]=$conteggio;
  }
}
  
//configure graph
$graph->addData($dataArray);
$graph->setTitle('PPM Per Container');
$graph->setBars(false);
$graph->setLine(true);
$graph->setDataPoints(true);
$graph->setDataPointColor('maroon');
$graph->setDataValues(true);
$graph->setDataValueColor('maroon');
$graph->setGoalLine(.0025);
$graph->setGoalLineColor('red');
$graph->createGraph();
?>

cosi si forma un grafico per ogni singolo giorno fino alla fine dell'anno, ma come posso raggrupparli per mesi?
 

Discussioni simili