0

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 クエリをどのように変更すればよいでしょうか? 前もって感謝します。

4

1 に答える 1