1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
<?php $q = Database::connect()->prepare("SELECT year(date_devis) annee,
SUM(CASE WHEN MONTH(date_devis) = 1 THEN prix_ht_prod ELSE 0 END) Janv,
SUM(CASE WHEN MONTH(date_devis) = 2 THEN prix_ht_prod ELSE 0 END) Fev,
SUM(CASE WHEN MONTH(date_devis) = 3 THEN prix_ht_prod ELSE 0 END) Mars,
SUM(CASE WHEN MONTH(date_devis) = 4 THEN prix_ht_prod ELSE 0 END) Avril,
SUM(CASE WHEN MONTH(date_devis) = 5 THEN prix_ht_prod ELSE 0 END) Mai,
SUM(CASE WHEN MONTH(date_devis) = 6 THEN prix_ht_prod ELSE 0 END) Juin,
SUM(CASE WHEN MONTH(date_devis) = 7 THEN prix_ht_prod ELSE 0 END) Juil,
SUM(CASE WHEN MONTH(date_devis) = 8 THEN prix_ht_prod ELSE 0 END) Aout,
SUM(CASE WHEN MONTH(date_devis) = 9 THEN prix_ht_prod ELSE 0 END) Sept,
SUM(CASE WHEN MONTH(date_devis) = 10 THEN prix_ht_prod ELSE 0 END) Oct,
SUM(CASE WHEN MONTH(date_devis) = 11 THEN prix_ht_prod ELSE 0 END) Nov,
SUM(CASE WHEN MONTH(date_devis) = 12 THEN prix_ht_prod ELSE 0 END) `Dec`,
SUM(prix_ht_prod) as Total FROM devis GROUP BY annee");
$q -> execute();
$table = array();
$table['cols'] = array(
array('label' => 'annee', 'type' => 'string')
);
$rows = array();
foreach($q->fetchAll(PDO::FETCH_ASSOC) as $value) {
$table['cols'][] = array(
'label'=>$value['annee'],
'type'=>'number'
);
foreach($value as $k=>$v) {
$temp = array();
$temp[] = array('v' => (string) $k);
$temp[] = array('v' => (int) $v);
$rows[] = array('c'=>$temp);
}
}
$table['rows'] = $rows;
$jsonTable = json_encode($table);
//echo $jsonTable;
?>
<body>
<div id="chart_div" style="height: 500px"></div>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script>
google.load('visualization', '1', {'packages':['corechart']});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable(<?=$jsonTable?>);
var options = {
title: 'Mon Graph',
};
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
</script>
</body> |
Partager