使用 PHP 和 MySQL 构建 Google 图表
Posted
技术标签:
【中文标题】使用 PHP 和 MySQL 构建 Google 图表【英文标题】:Building a Google Chart with PHP and MySQL 【发布时间】:2013-08-19 15:39:16 【问题描述】:我是 php 和 mysql 查询的新手。我正在尝试从 MySQL 数据库构建 Google 图表,但在 Google 上搜索了无数小时后,我找不到我需要的东西。但是,我找到了一个可能有用的示例,但我仍然无法按照我想要的方式进行操作。这是我的表的示例。
Apple | Orange | Strawberry
--------------------------
Like | Like | Like
Dislike | Like | Like
Dislike | Dislike | Like
Like | Dislike | Dislike
Like | Like | Like
我想计算Apple
、Orange
和 Strawberry
有多少个 Like 和 Dislike
。在图表中,我希望它显示有多少人喜欢和不喜欢这 3 种水果。
这是我一直在查看的代码,但我还没有弄清楚如何攻击它。
$query = mysql_query('SELECT * FROM data');
$table = array();
$table['cols'] = array(
array('label' => 'cas', 'type' => 'string'),
array('label' => 'data', 'type' => 'number')
);
$rows = array();
while($r = mysql_fetch_assoc($query))
$temp = array();
$temp[] = array('v' => $r['cas']);
$temp[] = array('v' => (int) $r['data']);
$rows[] = array('c' => $temp);
$table['rows'] = $rows;
$jsonTable = json_encode($table);
echo $jsonTable;
任何例子都会有所帮助!谢谢。
【问题讨论】:
How to get mysql data into a google chart using php loop? 的可能重复项 你如何处理这里的问题取决于你想要的最终结果。您是在寻找这样的东西:jsfiddle.net/asgallant/xbqr6,还是这样的东西:jsfiddle.net/asgallant/xbqr6/1,还是不同的东西? Asgallant:第一个会很棒! 【参考方案1】:试试这个作为你的 PHP:
$query = mysql_query("
SELECT
'Like' as 'preference',
SUM(IF(Apple = 'Like', 1, 0)) as Apple,
SUM(IF(Orange = 'Like', 1, 0)) as Orange,
SUM(IF(Strawberry = 'Like', 1, 0)) as Strawberry
FROM data
UNION
SELECT
'Dislike' as 'preference',
SUM(IF(Apple = 'Dislike', 1, 0)) as Apple,
SUM(IF(Orange = 'Dislike', 1, 0)) as Orange,
SUM(IF(Strawberry = 'Dislike', 1, 0)) as Strawberry
FROM data
");
$table = array();
$table['cols'] = array(
array('label' => 'preference', 'type' => 'string'),
array('label' => 'Apple', 'type' => 'number'),
array('label' => 'Orange', 'type' => 'number'),
array('label' => 'Strawberry', 'type' => 'number')
);
$rows = array();
while($r = mysql_fetch_assoc($query))
$temp = array();
$temp[] = array('v' => $r['preference']);
$temp[] = array('v' => (int) $r['Apple']);
$temp[] = array('v' => (int) $r['Orange']);
$temp[] = array('v' => (int) $r['Strawberry']);
$rows[] = array('c' => $temp);
$table['rows'] = $rows;
$jsonTable = json_encode($table);
echo $jsonTable;
SQL 应该返回两行数据,一行是喜欢的总和,另一行是不喜欢的总和,然后将其解析为 Google Visualization API DataTable 格式并作为 JSON 字符串回显。这很适合作为图表的AJAX数据源,但稍作修改,就可以直接将数据输出到javascript中绘制图表。
【讨论】:
$jsonTable
的内容是什么?
当我使用该 JSON 字符串构建 DataTable 时,它对我有用。发布您的 javascript,以便我进行测试。【参考方案2】:
“这是我一直在查看的代码,但我还没有弄清楚如何 攻击它。”
这里是如何调试它,说这些是你正在采取的步骤。
-
从数据库中获取数据
创建数组
Json 对数组进行编码
将 Json 发送到图表
尝试在上面的步骤 2.
中硬编码一个数组,暂时从等式中删除步骤 1
。
现在,从这一步开始,其余的代码是否应该如此?您能看到预期使用硬编码值的图表吗?
如果是,那么现在向后工作,var_dump()
ing 数据,直到它与您之前的硬编码值匹配。
【讨论】:
以上是关于使用 PHP 和 MySQL 构建 Google 图表的主要内容,如果未能解决你的问题,请参考以下文章
侧边栏 Google Maps API v3 使用 PHP/MYSQL 提取数据 [关闭]
Google Maps API 标记未显示 - 使用 MySQL 和 JSON