1

我对 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]

        }]
    });
});

});

我的数据库中有一个名为诊断的表,其中包含患者的诊断和添加条目的日期,现在我希望我的图表显示我的诊断字段中特定疾病或疾病的每月发病率。是否可以?如果是的话,你能帮我解决这个问题吗?任何帮助将不胜感激。提前致谢。

4

3 回答 3

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);
于 2013-01-16T07:04:03.763 回答
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)

    ?>
}, {
于 2013-01-16T07:04:14.873 回答
0

你的约会怎么样?因为 Highcharts 以毫秒为单位使用时间戳,所以您可能需要通过 Date.UTC() 解析您的日期或使用适当格式的时间。

顺便提一句。你的 JSON 长什么样?

于 2013-02-01T13:36:58.407 回答