Ciao a tutti ragazzi...mi sono sbattuto un po' e prendendo qua e la e modificando ho composto questo abbozzo per generare dinamicamente grafici con googlechart:
Codice PHP:
<? $test_data=array(50,10,20,5,15);
$test_datanames=array(prova1,prova2,prova3,prova4,prova5);
$chart_name=CiaoMondo;
echo "<img src=http://chart.apis.google.com/chart?chtt=".urlencode($chart_name)."&chl=".
$test_datanames[sizeof($test_datanames) - 1].
"&cht=p3&chs=450x125&chd=".chart_data($test_data).">";
function chart_data($values) {
$maxValue = max($values);
$simpleEncoding = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
$chartData = "s:";
for ($i = 0; $i < count($values); $i++) {
$currentValue = $values[$i];
if ($currentValue > -1) {
$chartData.=substr($simpleEncoding,61*($currentValue/$maxValue),1);
} else {
$chartData.='_';
} }
return $chartData."&chxt=y&chxl=0:|0|".$maxValue;
}
function chart_names() {
$maxName = sizeof($test_datanames) - 1;
for ($i = 0; $i < $maxName; $i++) {
echo $i."|";
if ($i = maxName) {
break;
}
}
}
?>
Potete trovare il risultato qui:
http://www.gioblu.com/GiO/googlechart.php
Come potete vedere ho richiamo solo l'ultimo nome della lista dei nomi, utilizzando la funzione sizeof(). Io invece al posto di quel richiamo nell'echo iniziale, vorrei richiamare l'ultima funzione (chart_names), e comporre la stringa inserendo tutti i nomi...
Se richiamo la funzione semplicemente cosi:
echo "<img src=http://chart.apis.google.com/chart?chtt="
.urlencode($chart_name)."&chl=".
$test_datanames[ chart_names() ].
"&cht=p3&chs=450x125&chd=".chart_data($test_data). ">";
non funziona, non appaiono nomi, anche se mi sono curato di inserire il corretto separatore | per i nomi...avreste qualche consiglio??
stavo pensando di espandere la cosa anche per i colori..