如何以图表的形式表示MySQL数据

时间:2015-11-16 07:03:37

标签: php mysql chart.js

我正试图以图表的形式表示MySQL数据,使用chart.js,但我收到这样的错误。

ReferenceError: gachibowli is not defined

价值:gachibowli

<?php
$con = mysql_connect("localhost", "root", "");
mysql_select_db("cycle", $con);

while ($row = mysql_fetch_assoc($result)) {
echo $row['standName'] . ' | ' . $row['currentQty'] . '  %' . "\n"$set1 = $row['standName'];
$set2 = $row['currentQty'];
}

?>
<script type="text/javascript" src="js/Chart.min.js">
</script>
<script>
  var pieData = [
    {
      value: <?php
      echo $set1;
      ?>,
      color:"#F38630"
    },
    {
      value : <?php
      echo $set2;
      ?>,
      color : "#E0E4CC"
    }
  ];
  var myPie = new  Chart(document.getElementById("canvas").getContext("2d")).Pie(pieData);
</script>
</script>

1 个答案:

答案 0 :(得分:0)

我希望你在某处指定$result。似乎没有任何疑问。

然后有一个&#34 ;;&#34;在echo结构中while语句后丢失。

此外,您的整个数据设置没有任何意义:为什么会一次又一次地覆盖$set1$set2,最后只使用最后的结果。

我假设(通过命名)您希望集合包含多个值。这可以通过首先将它们初始化为数组然后将每行值推送到它们来实现:

$set1[] = $row['standName'];
$set2[] = $row['currentQty'];

至少这样你最终会得到数据。

最后,看看Chart.js如何为饼图工作:http://www.chartjs.org/docs/#doughnut-pie-chart-example-usage

$row['standName'](可能是一个字符串)这样的内容作为数据点值(数字)移交不会有任何意义。

既然一点也不清楚,你在这里想做什么,我会走出困境:

<?php

...

$data = array();
$colors = array("#F38630","#E0E4CC");
$i=0;
while ($row = mysql_fetch_assoc($result)) {
    echo $row['standName'] . ' | ' . $row['currentQty'] . '  %' . "\n";
    $data[] = array(
        'value' => $row['currentQty'],
        'label' => $row['standName'],
        'color' => $colors[$i%2], // just alternating colors
    );
    $i++;
}

$pieData = jseon_encode($data);

?>
<script type="text/javascript" src="js/Chart.min.js"></script>
<script>
  var myPie = new  Chart(document.getElementById("canvas").getContext("2d")).Pie(<?php echo $pieData; ?>);
</script>