Highchart:折线图无法从屏幕上的数据库中加载数据

时间:2019-04-01 09:41:09

标签: javascript php jquery mysql highcharts

我正在尝试根据数据库中的数据制作HighChart折线图。 我从数据库中获取了数据,因为我可以在控制台中看到该数据。

我使用的php代码是:

<?php
$query = "
  SELECT YEAR(created_at) AS year, 
       MONTHNAME(created_at) AS month, 
    COUNT(*) AS count
    FROM users
    GROUP BY month ASC ORDER BY created_at ASC
" ;

 $result = mysqli_query($conn, $query) ;

while ($row = mysqli_fetch_assoc($result)) {
$data1[] = $row['month'];
 $data2[] = $row['count'];
}
?>

现在,我按照以下所示在Highchart的脚本中获取数据:

<script type="text/javascript">
$(function () {
$('#container').highcharts({
    chart: {
        type: 'line',

    },
    title: {
        text: 'Download Trends'
    },
 credits: {
 enabled: false
 },
    xAxis: {
        categories:  ['<?php echo join($data1, "','"); ?>'],

    },
    yAxis: {
        min: 0,
        title: {
            text: 'No. of Downloads'
        }
    },


  plotOptions: {
                        column: {
                                    pointPadding: 0.2,
                                    borderWidth: 0
                                }
                    },
    series: [{
        name: 'Qty',
        data: ['<?php echo join($data2, "','"); ?>'],
  }]
    });
    });
 </script>

我将容器div与id容器一起使用,如下所示:

<div id="container"></div>

问题在于数据没有以正确的方式显示。如您所见,它仅显示一半的数据: enter image description here

它没有显示行。 请帮助

1 个答案:

答案 0 :(得分:1)

您的数据系列是由字符串组成的,而Highcharts可以处理这种图形的数字。

删除数据部分中的简单引号,它应该可以工作: data: [<?php echo join($data2, ","); ?>]