Bonjour,

J'utilise google chart (line) pour afficher mes statistiques.

Mais je ne m'en sors pas vraiment.

Resultat de la requete SQL:
Nom : sql.png
Affichages : 129
Taille : 7,5 Ko
Le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
Le problème est que je n'ai qu'une seule ligne de données (les mois identiques additionnent leur valeur quelque soit l'année)
Nom : sql1.png
Affichages : 130
Taille : 15,3 Ko

Une idée svp?