使用数据库中条目的高图来创建条形图

时间:2013-01-16 06:44:33

标签: php mysql highcharts

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

        }]
    });
});

});

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

3 个答案:

答案 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是怎样的?