Я пытаюсь представить данные MySQL в виде диаграмм, используя chart.js, но получаю такую ошибку.
ReferenceError: gachibowli is not defined
Значение: гачибовли
<?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>
Я надеюсь, что вы назначаете $result
где-то. Похоже, не было никакого запроса.
Тогда есть «;» пропал после вашего 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>
Других решений пока нет …