【发布时间】:2013-10-07 13:47:35
【问题描述】:
我对 google chart api 还很陌生,但我的 php 知识仍在扫除,所以也许有人可以帮助解决这个(IMO)基本问题......
所以我有这个 php 类,它可以从服务器查询数据并将其发布回我的页面。其中有一个有效的折线图,您可以在下面的 sn-p 中看到:
$rowdata = array();
$i=0;
$_POST['from'] = str_replace("/","-",$_POST['from']);
$_POST['to'] = str_replace("/","-",$_POST['to']);
$cur_date = $_POST['from'];
$sql = "SELECT DATE(entered),
COUNT(*) AS totalaccounts,
SUM(CASE WHEN facebook_username != '' THEN 1 ELSE 0 END) AS facebook,
SUM(CASE WHEN facebook_username = '' THEN 1 ELSE 0 END) AS standard
FROM Account
WHERE entered BETWEEN '". $_POST['from'] ."' AND '". $_POST['to'] ."'
GROUP BY DATE(entered)";
$result = $dbMain->query($sql);
$rows = tratarDadosParaGrafico($result);
$return = json_encode(array('cols' => $cols, 'rows' => $rows));
$data = array(
'cols' => array(
array('id' => '', 'label' => 'Date', 'type' => 'string'),
array('id' => '', 'label' => 'Total Accounts', 'type' => 'number'),
array('id' => '', 'label' => 'Total Accounts (Facebook)', 'type' => 'number'),
array('id' => '', 'label' => 'Total Accounts (Non Facebook)', 'type' => 'number')
),
'rows' => $rows
);
$chart = new Chart('LineChart');
$options = array('title' => 'Accounts');
$chart->load(json_encode($data));
echo $chart->draw('rchart', $options);
我试图做的是使用相同的查询结果 ($data) 来填充另一个图表,这个是饼图...所以我只是粘贴了最后 4 行代码,在创建新的时候更改了参数图表实例:
$chart = new Chart('PieChart');
$options = array('title' => 'Accounts');
$chart->load(json_encode($data));
echo $chart->draw('pchart', $options);
在此之后,我关闭 php 标签并使用 2 个 div 来显示我的图表...
<div id="rchart"></div>
<div id="pchart"></div>
这里的一切都来自这个 index.php 类,我根本没有看到 html 文件...发生的是我可以看到折线图正下方的饼图,但是 它里面没有数据,即整个图表为灰色并标记为“其他”
我做错了什么?提前致谢!
[编辑] 假设我想要一个只有 2 个切片的饼图,为什么下面的代码不起作用? (我收到“无法读取未定义的属性 '1'”错误)
$data = array(
'cols' => array(
array('label' => 'Pie slice labels', 'type' => 'string'),
array('label' => 'Pie slice values', 'type' => 'number')
),
'rows' => array(
array('v' => intval($facebook_accounts[0]), 'type' => 'int'),
array('v' => intval($default_accounts[0]), 'type' => 'int')
)
);
$chart = new Chart('PieChart');
$options = array('title' => 'Accounts');
$chart->load(json_encode($data));
echo $chart->draw('piechart', $options);
[编辑] 也许这可以帮助你帮助我:) https://groups.google.com/forum/#!topic/google-visualization-api/Wi_WOVOgzG8
Creating Pie char from mysql database using php and google charts
【问题讨论】:
标签: php sql json google-visualization