所以我有这个问题,我从数据库中提取数字,用于页面上的点击。当数据库中只有一个国家时,饼图工作得很好,现在只有少数几个国家,但它从前5名抓起来。它工作正常,但我认为我的while循环搞砸了,我将如何重新格式化以便它起作用? `
数据库查询:
$csel = $odb->query("SELECT country, COUNT(*) AS cnt FROM bots GROUP BY country ORDER BY cnt DESC LIMIT 5");
显示:
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
google.charts.load("current", {packages:["corechart"]});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Country', 'Total Bots'],
<?php
while ($c = $csel->fetch())
{
$top2 = geoip_country_name_by_id($gi, $c[0]);
$top = number_format($c[1]);
echo ("['$top2', '$top']");
}
我认为这是因为我在回声结束时没有逗号,所以我尝试了,饼图是灰色的并且说“其他”
我想我需要以某种方式创建一个字符串来执行echo所说的内容,并在最后一段数据之前添加逗号。
有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
google.charts.load('current', {'packages':['corechart']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['time', 'Price'],
<?php while ($r = mysqli_fetch_array($res)) {
echo "[' ".$r["timestamp"]." ', ".$r["totalprice"]." ],";
} ?>
]);
var options = {
title: 'My Daily Activities'
};
var chart = new google.visualization.PieChart(document.getElementById('piechart'));
chart.draw(data, options);
}
</script>