Problema valori lipsa din baza de date pt Highcharts LINE cu
Scris: Mar Sep 13, 2016
Salutare,
Am urmatorul cod pentru chartul de tip line:
baza de date arata cam asa:
fisierul query_sql.php:
fisierul query_sql.php returneaza valorile facand suma pentru fiecare luna in parte. Pana aici totul functioneaza corect.
In grafic la xAxis.categories sunt trecute toate lunile, insa daca in baza mea de date nu sunt valori in luna MAI nu returneaza nimic si atunci graficul se decaleaza, ramand 11 luni in loc de 12
Ce pot face ca atunci cand in baza de date nu sunt valori la o luna sa imi returneze valoarea 0.
In baza de date exista asa:
iar eu am nevoie sa imi returneze asa:
Multumesc!
Am urmatorul cod pentru chartul de tip line:
Cod: Selectaţi tot
function fetch_select(){
val_an_inceput = $('#get_an_inceput').val();
val_personal = $('#get_personal').val();
$.ajax({
type: 'POST',
url: 'Query_sql.php',
data: { get_an_inceput: val_an_inceput,
get_personal: val_personal
},
success: function (response) {
document.getElementById('container').innerHTML=response;
columnChart( JSON.parse(response));
}
});
}
function columnChart(data_v){
if(data_v.length >0){
$(function () {
$('#container').highcharts({
title: {
text: 'Monthly Average Temperature',
x: -20 //center
},
subtitle: {
text: 'Source: WorldClimate.com',
x: -20
},
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
},
.......
series: [{
name: 'Tokyo',
data: data_v // valori sub forma: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]
}]
});
});
}
}
Cod: Selectaţi tot
+----+-----------+--------------+
| ID | MONTH | QUANTITY |
+----+----- -----+--------------+
| 1 | 1 | 1 |
| 2 | 2 | 2 |
| 3 | 7 | 3 |
| 4 | 4 | 1 |
| 5 | 2 | 3 |
| 6 | 12 | 8 |
| 7 | 1 | 6 |
+----+-------+------------------+
Cod: Selectaţi tot
<?php
include 'bd_cnx.php';
if(isset($_POST['get_an_inceput'],
$_POST['get_personal']
)){
//Array-ul cu datele care vor fi returnate, in format json
$finalArray = $store = [];
// Interogare SQL
$sch_an_inceput = $_POST['get_an_inceput'];
$sch_personal = $_POST['get_personal'];
$sql = "SELECT
.......
ORDER BY TOTAL DESC";
// Executa interogarea si retine datele returnate
$result = $conn->query($sql);
// daca $result contine cel putin un rand
if ($result->num_rows > 0){
// adauga datele din fiecare rand din $result in $ret
while($row = $result->fetch_assoc()){
//floatval() transforma sirul numeric in numar
$ret[] =[floatval($row['TOTAL'])];
}
}
}
//returneaza datele ca json
if (count($ret) >1){
echo json_encode($ret);
}
else {
echo 'Nu s-au realizat livrari in perioada selectata';
}
?>
In grafic la xAxis.categories sunt trecute toate lunile, insa daca in baza mea de date nu sunt valori in luna MAI nu returneaza nimic si atunci graficul se decaleaza, ramand 11 luni in loc de 12
Ce pot face ca atunci cand in baza de date nu sunt valori la o luna sa imi returneze valoarea 0.
In baza de date exista asa:
Cod: Selectaţi tot
ian->1; mar->5; apr->6; sep->
Cod: Selectaţi tot
ian->1; feb->0; mar->5; apr->6; mai->3; iun->4; iul->7....dec->3