在我的图表中显示统计信息(php mysqli)



我想为我的网站做统计,所以,我用数据库编写了php代码

但是我在我的图表中显示它有问题

首先,我的数据库中有一个表格,他的名字是(统计)

它有 3 行:

Id | St_date    | count 
1  | 2016-06-01 | 1 
2  | 2016-06-02 | 0 
3  | 2016-06-03 | 5 
...
9  | 2016-06-09 | 1

我的图代码是:

<script>
  var lineChartData = {
     labels : ["1","2","3","4","5"],
        datasets : [
            {
            fillColor : "rgba(252, 130, 19, 0.74)",
            strokeColor : "#FC8213",
            pointColor : "#FC8213",
            pointStrokeColor : "#fff",
            data : ["1","0","9","5","95"]
            },
        ]
            };
 new Chart(document.getElementById("line").getContext("2d")).Line(lineChartData);
</script>

我试图制作这段代码:'(

<?php
$date1 = date('m');
$date2 = date('Y');
$sql = "SELECT * FROM statistics WHERE MONTH(st_date) = $date1 and YEAR(st_date) = $date2 ";
$sql_sel = mysqli_query($conn,$sql);
while($rows = mysqli_fetch_assoc($sql_sel)){
    echo'
       <script>
        var lineChartData = {
        labels : ["'.$rows['st_date'].'"],
        datasets : [
                {
                fillColor : "rgba(252, 130, 19, 0.74)",
                strokeColor : "#FC8213",
                pointColor : "#FC8213",
                pointStrokeColor : "#fff",
                data : ['.$rows['count'].']
                },
            ]
        };
new Chart(document.getElementById("line").getContext("2d")).Line(lineChartData);
  </script>';
         }
      ?>

但它只显示 1 行。有什么帮助吗?

问题是您正在为数据库中的每一行创建图表 javascript 代码。你应该遍历数据库结果并构建一个数组,然后回显你的javascript代码:

$data = [];
$labels = [];
while($rows = mysqli_fetch_assoc($sql_sel)){
    $data[] = $rows['count'];
    $labels[] = '"'.$rows['st_date'].'"';
}
echo '
<script>
var lineChartData = {
labels : ['.implode(',',$labels).'],
datasets : [
        {
        fillColor : "rgba(252, 130, 19, 0.74)",
        strokeColor : "#FC8213",
        pointColor : "#FC8213",
        pointStrokeColor : "#fff",
        data : ['.implode(',',$data).']
        },
    ]
};
new Chart(document.getElementById("line").getContext("2d")).Line(lineChartData);
</script>';

最新更新