0

動的Googleチャートのコードは次のとおりです。

     <?php
        $dateone="20-09-2013";
                $datetwo="15-10-2013";
               $qry1=mysql_query("SELECT count(call_type) FROM tb_name WHERE call_date>='".$dateone." 00:00:00' AND call_date<='".$dateone." 23:59:59'");
               $row1=mysql_fetch_array($qry1);
               $qry2=mysql_query("SELECT count(call_type) FROM tb_name WHERE call_date>='".$datetwo." 00:00:00' AND call_date<='".$datetwo." 23:59:59'");
               $row2=mysql_fetch_array($qry2);

               $chart= array( 
                     array('Date', 'Total Calls' ),  
                     array("$dateone", intval($row1[0])),
                     array("$datetwo", intval($row2[0])));
                $data=json_encode($chart);
        ?>
      <script type="text/javascript" src="https://www.google.com/jsapi"></script>
        <script type="text/javascript">
        google.load("visualization", "1", {packages:["corechart"]});
        google.setOnLoadCallback(drawChart);

          function drawChart() {

            var data = google.visualization.arrayToDataTable(<?php echo $data; ?>);

             var options = {'title':'Total Calls'
                          };
            var chart = new google.visualization.AreaChart(document.getElementById('chart_div'));
            chart.draw(data, options);
          }
        </script> 

このコードは正常に動作しています。しかし、このコードを実行すると、特定の日付の詳細が Google チャートに表示されます。その与えられた 2 つの日付の間をすべてカウントする必要があります。そのためのコードを変更する方法。

4

1 に答える 1

0

必要なクエリは 1 つだけです。$dateone と $datetwo の間の日付ごとに、行を数えて日付を選択する必要があります。日付ごとにグループ化する必要があります。

MySQL クエリは次のようになります。

SELECT count(1), DATE(call_date) FROM tb_name WHERE call_date>='".$dateone." 00:00:00' AND call_date<='".$datetwo." 23:59:59' GROUP BY DATE(call_date)

while ステートメントを使用して各行をループし、チャート配列に追加するだけです。

例えば:

$qry=mysql_query("SELECT count(1) as count, DATE(call_date) as Ymd FROM tb_name WHERE call_date>='".$dateone." 00:00:00' AND call_date<='".$datetwo." 23:59:59' GROUP BY DATE(call_date)");
$chart= array( 
    array('Date', 'Total Calls' ));
while($row = mysql_fetch_assoc($qry))
{
    $chart[] = array($row['Ymd'], intval($row['count']));
}
$data=json_encode($chart);

ただし、MySQL 接続とクエリには PDO ライブラリを使用することをお勧めします。

于 2013-10-22T12:09:18.717 に答える