Google Charts を使用して円グラフを描画しています。それを描画するには、2 列形式のデータが必要です。Google チャートを描画するためのコードは、将来の実装の一部であるため、ここでは示しません。データベースからデータを取得するために、次のコードを作成しました。
<?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
しかし、transaction_category と transaction_count という名前の 2 つの列に結果が必要です。それを達成するために SQL クエリをどのように変更すればよいでしょうか? 前もって感謝します。