Files
pannello/proxy/graph.php
2016-03-21 15:50:44 +01:00

127 lines
2.7 KiB
PHP

<?php
include_once ("../core/config.php");
$UTENTE = login();
//isadmin();
include_once "../jpgraph/jpgraph.php";
//include_once "../jpgraph/jpgraph_line.php";
//include_once "../jpgraph/jpgraph_plotline.php";
//include_once( "../jpgraph/jpgraph_date.php" );
include_once "../jpgraph/jpgraph_bar.php";
if (isset ($_GET['ip'])) $ip = $_GET['ip'];
if (isset ($_GET['tempo'])) $tempo = $_GET['tempo'];
switch ($tempo) {
case 'DAY':
$gruppo = "HOUR";
$format1 = "%m%d%H";
$format2 = "%H";
$limit = 24;
break;
case 'WEEK':
$gruppo = "DAY";
$format1 = "%m%d";
$format2= "%d.%m";
$limit = 7;
break;
case 'MONTH':
$gruppo = "DAY";
$format1 = "%m%d";
$format2= "%d.%m";
$limit = 30;
break;
case 'YEAR':
$gruppo = "MONTH";
$format1 = "%Y%m";
$format2= "%b";
$limit = 12;
break;
}
$query = " SELECT
DATE_FORMAT(data_destroy,'$format1'),
DATE_FORMAT(data_destroy,'$format2'),
SUM(inviati),
SUM(ricevuti)
FROM
proxy_dati
WHERE
ip = '$ip'
AND
data_destroy >= DATE_SUB(NOW(), INTERVAL 1 $tempo)
GROUP BY
$gruppo(data_destroy)
UNION
SELECT
DATE_FORMAT(DATE_SUB(NOW(), INTERVAL tempo $gruppo), '$format1'),
DATE_FORMAT(DATE_SUB(NOW(), INTERVAL tempo $gruppo), '$format2'),
0,
0
FROM
(SELECT @i:= @i - 1 AS tempo FROM INFORMATION_SCHEMA.COLLATION_CHARACTER_SET_APPLICABILITY, ( SELECT @i:= $limit) As i ) As Y
WHERE
tempo BETWEEN 0 AND $limit;
";
//print $query; exit;
$res = mysql_query( $query, $DB_ID );
$xdata = array();
$ydata = array(array());
$tmp = array(array());
$tag = array(array());
$alt = array(array());
while ( list ($tempo, $scritta, $inviati, $ricevuti) = mysql_fetch_array($res)) {
$xdata[$tempo] = $tempo;
if (!isset ($tmp['inv'][$tempo]) ) $tmp['inv'][$tempo] = $inviati;
if (!isset ($tmp['ric'][$tempo]) ) $tmp['ric'][$tempo] = $ricevuti;
if (!isset ($tmp['tag'][$tempo]) ) $tmp['tag'][$tempo] = $scritta;
};
//print_r($xdata); exit;
asort($xdata);
foreach ($xdata as $key => $val) {
$ydata['inv'][] = $tmp['inv'][$val];
$ydata['ric'][] = $tmp['ric'][$val];
$ydata['tag'][] = $tmp['tag'][$val];
}
//print_r($ydata); exit;
$l = 900;
$h = 400;
$g = new Graph($l,$h);
$g->SetMargin(80,20,50,80);
$g->SetScale('textlin');
$g->yaxis->SetLabelFormatCallback('byteConvert');
$g->xaxis->SetLabelAngle(45);
$g->legend->Pos(0.05,0.1);
$b1plot = new BarPlot ( $ydata['inv'] );
$b2plot = new BarPlot ( $ydata['ric'] );
$gbplot = new GroupBarPlot (array( $b1plot , $b2plot ));
$g->Add ( $gbplot );
$b1plot->SetFillColor('red');
$b1plot->SetShadow('gray',0.8);
$b1plot->SetLegend("Inviati");
$b2plot->SetFillColor('blue');
$b2plot->SetShadow('gray',0.8);
$b2plot->SetLegend("Ricevuti");
$g->xaxis->SetTickLabels($ydata['tag']);
$g->Stroke();
?>