我正在编写一个使用Google图表API构建图表的应用程序。 数据是动态的,驻留在MySQL数据库中。
面临的问题是包含要显示的数据源的数组只包含查询返回的第一行。即使在循环之后。
这是代码:
include 'connect.php';
$sql="SELECT result,COUNT(result) value
FROM test
WHERE result LIKE 'GY%'
GROUP BY result";
$result=mysqli_query($link,$sql);
$myurl[]="['Option','Value']";
while($row=mysqli_fetch_assoc($result))
{
$result=$row['result'];
$value=$row['value'];
$Title="My Results";
$myurl[]="['".$result."',".$value."]";
}
<script type="text/javascript">
google.load('visualization', '1', {'packages':['corechart']});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.arrayToDataTable([
<?php
echo (implode(",",$myurl));?>
]);
var options={
title:'<?php echo($Title);?> '
};
在图表中仅使用返回的第一行,因此它将该值显示为100%。如何确保使用所有行值?
答案 0 :(得分:1)
像这样修改查询
$sql="SELECT result value
FROM test
WHERE result LIKE 'GY%'
GROUP BY result";
$result=mysqli_query($link,$sql);
您可以访问的结果数量如下所示。
mysqli_num_rows($result)
答案 1 :(得分:0)
如果你想要一个关联数组,请使用:
$query = "SELECT column FROM `table` WHERE id='" . $id . "'"; / Whatever your query is
$result = mysql_query($query);
$row = mysql_fetch_assoc($result);
然后,您可以使用$row
从编号为$id
的行中调用$row['columnname'];
和列名称。我也非常确定您可以使用{{1}不在查询中包含print_r($row['columnname']);
,而只是拥有WHERE id='" . $id . "'";
表$query = "SELECT column FROM
,它将打印出该列中的所有数据(每一行)。
此外,如果您只是想将数据绘制到图表中,那么使用谷歌API可能会使事情变得复杂,因为您可以使用以下代码将数据输出到HTML表格:
;
在php中使用echo然后使用html代码添加所需的任何其他内容。您还可以在表格中放置按钮,以及其他任何内容。该网站应提供您在HTML表格上需要的更多信息:http://www.w3schools.com/html/html_tables.asp
这是我用PHP回显的另一个小例子。它有按钮等。
<?php
$query = "SELECT FROM `table`";
$result = mysql_query($query);
echo '<table class="table">';
echo '<tr class="table">';
echo '<th class="table">Column</th>';
echo '</tr>';
while($row = mysql_fetch_assoc($result)
{
echo '<tr class="table">';
echo '<th class="table">' . $row['column'] . '</th>';
echo '</tr>';
}
echo '</table>';
?>
希望有所帮助:)