我正在使用 Google Charts 绘制饼图。为了绘制它,需要两列格式的数据。绘制谷歌图表的代码在这里没有给出,因为它是未来实现的一部分。为了从数据库中获取数据,我编写了以下代码:
<?php
$con=mysql_connect("localhost","XYZ","pqrs") or die("Failed to connect with database!!!!");
mysql_select_db("LMN", $con);
$sql =" SELECT COUNT(*) 'carried_out', SUM(transaction_status = 'success') success, ";
$sql .=" SUM(transaction_status = 'inprocess') inprocess, SUM(transaction_status = 'fail') fail, ";
$sql .=" SUM(transaction_status = 'cancelled') cancelled FROM user_transaction GROUP BY transaction_status";
$sth = mysql_query($sql) or die(mysql_error());
/*$result = mysql_fetch_array($sth, MYSQL_ASSOC);
print_r($result); die;*/
$rows = array();
//flag is not needed
$flag = true;
$table = array();
$table['cols'] = array(
// Labels for your chart, these represent the column titles
// Note that one column is in "string" format and another one is in "number" format as pie chart only required "numbers" for calculating percentage and string will be used for column title
array('label' => 'Transaction Category', 'type' => 'string'),
array('label' => 'Percentage', 'type' => 'number')
);
//print_r($table);
$rows = array();
while($r = mysql_fetch_assoc($sth)) {
$temp = array();
// the following line will be used to slice the Pie chart
$temp[] = array('v' => (string) $r['user_transaction']);
//print_r($temp);
// Values of each slice
$temp[] = array('v' => (int) $r['transaction_count']);
//print_r($temp);
$rows[] = array('c' => $temp);
//print_r($rows);
}
$table['rows'] = $rows;
//print_r($table);
$jsonTable = json_encode($table);
//echo $jsonTable;
?>
如果我执行上述查询,我会得到以下结果:
carried_out success inprocess fail cancelled
18 18 0 0 0
8 0 8 0 0
64 0 0 0 64
但我希望将结果分为两列,名为 transactions_category 和 transaction_count。你能帮我做些什么改变我应该做 SQL 查询以实现这一目标吗?提前致谢。