Pages

Basic column highchart et json sujet

mercredi 26 mars 2014




Bonjour,
Je souhaite réaliser un graphique highcharts de ce style basic column
Mon fichier json renvoyé est le suivant :

Code:


[{"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:


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 ou est l'erreur !
pellets.jpg
Pour info voici ma requete sql

Code:


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











Images attachées










Aucun commentaire:

Enregistrer un commentaire