我是PHP和Jquery以及Javascript的新手,我真的需要帮助我如何从数据库中的条目中创建图形或图表。我有这个代码,我从Highcharts获得,我想用我的数据库中的条目替换代码中的月份,地点和其他值等数据,但我只是不知道该怎么做。以下是Highchart的代码:
$(function () {
var chart;
$(document).ready(function() {
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
type: 'column'
},
title: {
text: 'Monthly Average Rainfall'
},
subtitle: {
text: 'Source: WorldClimate.com'
},
xAxis: {
categories: [
'Jan',
'Feb',
'Mar',
'Apr',
'May',
'Jun',
'Jul',
'Aug',
'Sep',
'Oct',
'Nov',
'Dec'
]
},
yAxis: {
min: 0,
title: {
text: 'Rainfall (mm)'
}
},
legend: {
layout: 'vertical',
backgroundColor: '#FFFFFF',
align: 'left',
verticalAlign: 'top',
x: 100,
y: 70,
floating: true,
shadow: true
},
tooltip: {
formatter: function() {
return ''+
this.x +': '+ this.y +' mm';
}
},
plotOptions: {
column: {
pointPadding: 0.2,
borderWidth: 0
}
},
series: [{
name: 'Tokyo',
data: [49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
}, {
name: 'New York',
data: [83.6, 78.8, 98.5, 93.4, 106.0, 84.5, 105.0, 104.3, 91.2, 83.5, 106.6, 92.3]
}, {
name: 'London',
data: [48.9, 38.8, 39.3, 41.4, 47.0, 48.3, 59.0, 59.6, 52.4, 65.2, 59.3, 51.2]
}, {
name: 'Berlin',
data: [42.4, 33.2, 34.5, 39.7, 52.6, 75.5, 57.4, 60.4, 47.6, 39.1, 46.8, 51.1]
}]
});
});
});
我的数据库中有一个名为诊断的表,其中包括患者的诊断和添加条目的日期,现在我希望我的图表显示诊断领域中特定疾病或疾病的月率。可能吗?如果是的话,请你帮我解决这个问题。任何帮助将不胜感激。提前谢谢。
答案 0 :(得分:0)
<强> current_page.php 强>
<script>
$.post( 'get_graph_data.php"', {'id':'data_id'}, function(data) {
var data = jQuery.parseJSON(data);
chart = new Highcharts.Chart({data});
})
</script>
<强> get_graph_data.php 强>
//get data from database
// make array like this
array(
"chart"=> array(
"renderTo"=> 'container',
"type"=> 'column'
),
"title"=> array(
"text"=> 'Monthly Average Rainfall'
),
"subtitle"=> array(
'text'=> array('Source'=> 'WorldClimate.com')
),
'xAxis'=> array(
'categories'=>array(
'Jan',
'Feb',
'Mar',
'Apr',
'May',
'Jun',
'Jul',
'Aug',
'Sep',
'Oct',
'Nov',
'Dec'));
so on............
echo json_encode($above_array);
答案 1 :(得分:0)
用以下内容替换其中一个系列:
series: [{
name: 'massively overweight',
data:
<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
$res = $mysqli->query("SELECT date(date, '%b') as month, count(*) as cnt FROM diagnosis where illness = 'massively overweight'");
while ($row = $res->fetch_assoc()) {
$fat_people = $row['cnt'];
}
json_encode($cnt)
?>
}, {
答案 2 :(得分:0)
您的约会如何?由于Highcharts使用以毫秒为单位的时间戳,因此您可能需要通过Date.UTC()解析日期或以适当的格式使用时间。
顺便说一句。你的JSON是怎样的?