MYSQL 查询和图表.js和 PHP


MYSQL Query and Chart.js and PHP

希望得到一些帮助。

我在MYSQL数据库中有数据,其中包含公司中的计算机列表。其中一个字段是购买计算机的日期,另一个是品牌。

我想使用 Chart 创建一个条形图.js显示每个不同年份我们拥有的计算机数量。因此,在 X 轴上,我们将所有不同的年份作为标签,在 Y 轴上,我们有每一年购买的所有计算机的计数。

我已经编写了这段代码,但无法使其工作:

查询:

$sql = "SELECT YEAR(purchased) AS years, COUNT(brand) AS 'count' FROM computers GROUP BY purchased, brand ORDER BY purchased";
$result = mysqli_query($conn, $sql);

        $years = array();
        $count = array();
        while ($row = mysql_fetch_assoc($result)) {
            $years[]  = $row["years"];
            $count[] = $row["count"];
        }    
    mysqli_close($conn);

然后是图表:

<script>

    var barChartData = {
        labels : <?php=json_encode($years);?>,
        datasets : [
            {
                fillColor : "rgba(220,220,220,0.5)",
                strokeColor : "rgba(220,220,220,0.8)",
                highlightFill: "rgba(220,220,220,0.75)",
                highlightStroke: "rgba(220,220,220,1)",
                data : <?php=json_encode($count);?>
            }       ]
    }
    window.onload = function(){
        var ctx = document.getElementById("canvas").getContext("2d");
                ctx.canvas.height = 200;
        window.myBar = new Chart(ctx).Bar(barChartData, {
            responsive : true
        });
    }
    </script>

对我做错了什么的任何想法。一直在努力让这个图表。

谢谢。

您的数据设置为json_encode,这不是chart.js读取它的方式。

将代码从以下位置更改:

<?php=json_encode($count);?>

自:

["<?php echo implode('","',$count);?>"]

多年来,从:

<?php=json_encode($years);?>

自:

["<?php echo implode('","',$years);?>"]

引号是用来包含任何不是数值的东西,如果你肯定所有数据都是数值,你可以删除它们,但由于拥有它们并没有什么坏处,所以我把它们包括在内。

通了:

1:使用此查询:

选择年份(购买)作为

年,计数(ID)作为计算机的计数 按年份分组

2:有错别字!而($row = mysql_fetch_assoc($result))应该是:

而 ($row = mysqli_fetch_assoc($result))。我忘了mysql_fetch的i!

在格雷格的大力帮助下,它现在工作得很好。

感谢您的帮助!