Problema con PHPgraphlib

Alex@1983

Utente Attivo
9 Mag 2015
126
2
18
Ciao Ragazzi ,

sto provando ad utilizzare la libreria phpgraphlib, per visualiizare un piccolo grafico tramite dei dati che andrò poi ad estrarre dal DB. Per il momento , essendo il primissimo mio approccio all'utilizzo dei grafici in php, ho provato con un banalissimo script di esempio e con dati passati da me. Premetto che ho provveduto a scaricare la libreria , a scompattare i tre files (phpgraphlib.php , phpgraphlib_pie.php , phpgraphlib_stacked.php) nella directory contenente lo script.

Il problema è che una volta compilato il codice per la visualizzazione del grafico.............LA PAGINA MI COMPARE TUTTA NERA...CON UN RIQUADRO GRIGIO AL CENTRO !!!!!

Cattura.PNG


Qualcuno sa darmi una mano ?

ecco il codice:
PHP:
<?php

include("phpgraphlib.php");
$graph=new PHPGraphLib(1000,800);

$data=array("Io"=> 10, "Tu"=>20);

$graph->addData($data);

$graph->setTitle("Prove");

$graph->setTextColor("blue");

$graph->createGraph();

?>

Grazie mille in anticipo!!!!
 
Ciao Borgo Italia,

ho risolto il problema, in pratica cercavo di far generare il grafico all'interno stesso della mia pagina ... mentre PHPgraphlib genera un'immagine (che necessita di una pagina a se esempio grafico.php) che può poi essere inclusa all'interno della pagina dove si desidera posizionare il grafico.

Adesso infatti sono riuscito a visualizzarlo....il problema a questo punto è che il grafico viene generato "nudo e crudo" senza valori mostrati .

Qualcuno sa per caso come fare a visualizzare anche i valori riferiti ad uno "spicchio" della torta ??

Oppure conosce un altro metodo o libreria per generare grafici con dati provenienti da record mysql?

Ecco il grafico generato, il codice è identico a quello di sopra, solo che è inserito in una pagina a se stante e poi incluso all'interno della mia pagina con un iframe.

graph3.php
 
Ciao Borgo....sai che fatico a capire?!?!?!

Mi dai una mano a comprendere come "valorizzare l'array".... come avrai notato mi sbatto per trovare le soluzioni, non voglio la pappa pronta.... ma mi spieghi meglio come fare?

nello specifico il codice della mia pagina, con il quale tiro fuori il grafico sopra postato è:

PHP:
$connessione = mysql_connect("$HOST","$USER","$PASSWORD");//database connection
// Qui sotto al posto di NOME_DATABASE, inserite il nome del vostro DB
mysql_select_db("my_db");

$sqlacquario = "SELECT COUNT(stato) FROM `RegistroInterventi2015` WHERE reparto = \"Acquario\" AND MONTH (data) = '07'";
    $sqlAcqo = mysql_query($sqlacquario);
    list($acquario) = mysql_fetch_array($sqlAcqo);

$sqlacquisti = "SELECT COUNT(stato) FROM `RegistroInterventi2015` WHERE reparto = \"Acquisti\" AND MONTH (data) = '07'";
    $sqlAcqi = mysql_query($sqlacquisti);
    list($acquisti) = mysql_fetch_array($sqlAcqi);

$sqlamministrazione = "SELECT COUNT(stato) FROM `RegistroInterventi2015` WHERE reparto = \"Amministrazione\" AND MONTH (data) = '07'";
    $sqlAmm = mysql_query($sqlamministrazione);
    list($amministrazione) = mysql_fetch_array($sqlAmm);

$sqlbiglietterie = "SELECT COUNT(stato) FROM `RegistroInterventi2015` WHERE reparto = \"Biglietterie\" AND MONTH (data) = '07'";
    $sqlBigl = mysql_query($sqlbiglietterie);
    list($biglietterie) = mysql_fetch_array($sqlBigl);

$sqlcontrop = "SELECT COUNT(stato) FROM `RegistroInterventi2015` WHERE reparto = \"Contr. Oper.\" AND MONTH (data) = '07'";
    $sqlContrOper = mysql_query($sqlcontrop);
    list($controp) = mysql_fetch_array($sqlContrOper);

$sqldiorama = "SELECT COUNT(stato) FROM `RegistroInterventi2015` WHERE reparto = \"Diorama\" AND MONTH (data) = '07'";
    $sqlDior = mysql_query($sqldiorama);
    list($diorama) = mysql_fetch_array($sqlDior);

$sqldirezione = "SELECT COUNT(stato) FROM `RegistroInterventi2015` WHERE reparto = \"Direzione\" AND MONTH (data) = '07'";
    $sqlDir = mysql_query($sqldirezione);
    list($direzione) = mysql_fetch_array($sqlDir);
   
$sqlentrata = "SELECT COUNT(stato) FROM `RegistroInterventi2015` WHERE reparto = \"Entrata\" AND MONTH (data) = '07'";
    $sqlEnt = mysql_query($sqlentrata);
    list($entrata) = mysql_fetch_array($sqlEnt);
   
$sqlesterni = "SELECT COUNT(stato) FROM `RegistroInterventi2015` WHERE reparto = \"Esterni\" AND MONTH (data) = '07'";
    $sqlEst = mysql_query($sqlesterni);
    list($esterni) = mysql_fetch_array($sqlEst);
   
$sqlit = "SELECT COUNT(stato) FROM `RegistroInterventi2015` WHERE reparto = \"IT\" AND MONTH (data) = '07'";
    $sqlIt = mysql_query($sqlit);
    list($it) = mysql_fetch_array($sqlIt);

$sqlmagazzino = "SELECT COUNT(stato) FROM `RegistroInterventi2015` WHERE reparto = \"Magazzino\" AND MONTH (data) = '07'";
    $sqlMag = mysql_query($sqlmagazzino);
    list($magazzino) = mysql_fetch_array($sqlMag);
   
$sqlmanutenzione = "SELECT COUNT(stato) FROM `RegistroInterventi2015` WHERE reparto = \"Manutenzione\" AND MONTH (data) = '07'";
    $sqlMan = mysql_query($sqlmanutenzione);
    list($manutenzione) = mysql_fetch_array($sqlMan);

$sqlmarketing = "SELECT COUNT(stato) FROM `RegistroInterventi2015` WHERE reparto = \"Marketing\" AND MONTH (data) = '07'";
    $sqlMar = mysql_query($sqlmarketing);
    list($marketing) = mysql_fetch_array($sqlMar);






   

//Imposto la dimensione della griglia del grafico (Larghezza, Altezza)
$graph=new PHPGraphLibPie(800,800);

//Inserisco i dati relativi alle colonne del grafico, i valori che voliamo visualizzare
$data=array("Acquario"=>$acquario, "Acquisti"=>$acquisti, "Amministrazione"=>$amministrazione, "Biglietterie"=>$biglietterie, "Contr.Oper:"=>$controp, "Diorama"=>$diorama, "Direzione"=>$direzione, "Entrata"=>$entrata, "Esterni"=>$esterni, "IT"=>$it, "Magazzino"=>$magazzino, "Manutenzione"=>$manutenzione, "Marketing"=>$marketing);

//Aggiungo i valori di cui sopra
$graph->addData($data);

//Imposto il titolo
$graph->setTitle("Punti acquisiti");

//Imposto il colore del testo
$graph->setTextColor("red");

$graph->setDataValues(true);

//Creo il grafico
$graph->createGraph();
 
ciao scusa
prima non avevo visto come inizializzavi la variabile $data, vedo ora che fai $data=array("Acquario"=>$acquario, ecc...,
io intendevo questo per valorizzare la variabile
inoltre mi sembra di aver capito che hai risolto anche se ti ribadisco passa alle nuove funzioni mysqli_xxx, corri il rischio che tra un po devi correggere tutto, se il tuo provider aggiorna php (probabile prima o poi) al posto del grafico ad ogni istruzione mysql_xxx vedrai
WARNING.....
 
Ciao Borgo,

provvedo ad aggiornare le funzioni....basta modificare mysql_query ... in ... mysqli_query ....? giusto ??

Per i grafici, in realtà ho risolto a metà....con il grafico a torta il valore numerico non mi compare, allora ho migrato su un grafico a barre....dove il valore viene mostrato correttamente.

Inoltre ho riscontrato un altro limite della libreria PHPgraphlib .... se aggiungi oltre i 14 "punti del grafico" (o spicchi...come vuoi) comincia a scombinare i colori di legenda e torta .....

Certo mi sembra proprio strano che PHP abbia strumenti così esigui per la gestione dei grafici......

Tu sai se c'è qualche strumento valido ?
 
ciao
per passare a mysqli devi per prima modificare la connessione
PHP:
$conn = mysqli_connect($host,$username,$password, $db);
dove inizializzerai le variabili $host,$username... con i tuoi dati
poi nella mysqli_query devi aggiungere la variabile di connessione $conn (o come la chiamerai) es.
PHP:
$ris=mysqli_query($conn, "SELECT.....");//o INSER o UPDATE o DELETE
per le altre funzioni basta aggiungere la i es.
da mysql_fetch_assoc($ris) a mysqli_fetch_assoc($ris)

per altri grafici prova a dare un occhio a
http://www.highcharts.com/
secondo @marino51 è una libreria molto ricca con diverse soluzioni di grafici anche combinate
 
Ok Borgo Italia,

mi "cimento" allora nell'aggiornamento delle funzioni.....

Proverò highcharts......ti faccio sapere

Ciao
 

Discussioni simili