Bonjour,

Je souhaite réaliser un graphique Highcharts de ce style basic column

Mon fichier json renvoyé est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
[{"category":["Jan","Fev","Mar","Avr","Mai","Juin","Juil","Aout","Sept","Oct","Nov","Dec"],"name":2010,"val":[30,22,21,13,10,0,0,0,3,16,24,34]},{"name":2011,"val":[30,23,19,8,6,4,0,0,2,14,22,28]},{"name":2012,"val":[28,31,23,16,12,2,0,0,4,16,28,30]},{"name":2013,"val":[33,30,30,17,14,4,0,0,6,15,29,32]},{"name":2014,"val":[34,29,18]}]
Mon script highchart est le suivant :
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
 
$(document).ready(function() {
            var options = {
                chart: {
                    renderTo: 'container',
                    type: 'column'
                },
                title: {
                    text: 'Consommation pellets',
                    x: -20 //center
                },
                xAxis: {
			categories: []
 
				},
                yAxis: {
                    title: {
                        text: 'Sacs'
                    },
                    plotLines: [{
                        value: 0,
                        width: 1,
                        color: '#808080'
                    }]
                },
                tooltip: {
	                formatter: function() {
	                        return '<b>'+ this.series.name +'</b><br/>'+
	                        this.x +': '+ this.y;
	                }
	            },
                legend: {
                    align: 'center',
                    verticalAlign: 'top',
                    x: -20,
                    y: 25,
                    borderWidth: 0
                },
                series: []
            }
 
            $.getJSON('../graphes/data_pellets_an2.php', function(json) {
                options.xAxis.categories = json[0]['category'];
                options.series[0] = json[1];
                options.series[1] = json[2];
		options.series[2] = json[3];
		options.series[3] = json[4];
                chart = new Highcharts.Chart(options);
            });
        });
Malheureusement ne s'affiche que la légende (les années) et aucun graphe ! Je ne vois pas où est l'erreur !

Nom : pellets.jpg
Affichages : 457
Taille : 71,4 Ko

Pour info voici ma requête sql :

Code php : 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
65
66
67
68
69
70
<?php
$host="localhost";
$username=""; 
$password=""; 
$db_name="chauffage"; 
$con=mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");
 
$sql_2010 = mysql_query("SELECT year(datetime) as annee, month(datetime) as mois, sum(sacs) AS tsacs
		FROM pellets
		WHERE year(datetime) = '2010'
		GROUP by mois
		ORDER by mois");
 
while($r_2010 = mysql_fetch_array($sql_2010)) {    
    $result_2010['category'] = ['Jan', 'Fev', 'Mar', 'Avr', 'Mai', 'Juin', 'Juil', 'Aout', 'Sept', 'Oct', 'Nov', 'Dec'];
	$result_2010['name'] = $r_2010['annee'];
	$result_2010['val'][] = $r_2010['tsacs'];
}
 
$sql_2011 = mysql_query("SELECT year(datetime) as annee, month(datetime) as mois, sum(sacs) AS tsacs
		FROM pellets
		WHERE year(datetime) = '2011'
		GROUP by mois
		ORDER by mois");
 
while($r_2011 = mysql_fetch_array($sql_2011)) { 
	$result_2011['name'] = $r_2011['annee'];
	$result_2011['val'][] = $r_2011['tsacs'];
}
 
$sql_2012 = mysql_query("SELECT year(datetime) as annee, month(datetime) as mois, sum(sacs) AS tsacs
		FROM pellets
		WHERE year(datetime) = '2012'
		GROUP by mois
		ORDER by mois");
 
while($r_2012 = mysql_fetch_array($sql_2012)) {    
    $result_2012['name'] = $r_2012['annee'];
	$result_2012['val'][] = $r_2012['tsacs'];
}
 
$sql_2013 = mysql_query("SELECT year(datetime) as annee, month(datetime) as mois, sum(sacs) AS tsacs
		FROM pellets
		WHERE year(datetime) = '2013'
		GROUP by mois
		ORDER by mois");
 
while($r_2013 = mysql_fetch_array($sql_2013)) {    
    $result_2013['name'] = $r_2013['annee'];
	$result_2013['val'][] = $r_2013['tsacs'];
}
 
$sql_2014 = mysql_query("SELECT year(datetime) as annee, month(datetime) as mois, sum(sacs) AS tsacs
		FROM pellets
		WHERE year(datetime) = '2014'
		GROUP by mois
		ORDER by mois");
 
while($r_2014 = mysql_fetch_array($sql_2014)) {    
    $result_2014['name'] = $r_2014['annee'];
	$result_2014['val'][] = $r_2014['tsacs'];
}
 
$result = array($result_2010, $result_2011, $result_2012, $result_2013, $result_2014);
 
print json_encode($result, JSON_NUMERIC_CHECK);
 
mysql_close($con);
?>

Je ne suis pas expert en la matière, je bidouille !
Merci pour votre aide.