如何使用PHP libchart逐月和日常提取MySQL数据以填充表格来绘制图形?

时间:2011-09-02 18:05:29

标签: php mysql graph

我有一个包含CALL_ID,Timestamp,Date,First_Name,Last_Name,Status等行的表。

我需要做的是根据数据绘制图表,根据日期进行过滤。 这是针对月份到目前的图表,我需要显示与当月每天的当天日期相匹配的状态=批准的行数。

而且,对于年初至今的图表,我需要显示与当前每月的每个月匹配的Status =批准的行数。

我这样做的想法就是这个 -

月初至今:

$temp = date("Y-m-");
while($i<=date("d"))
{
$query = "SELECT call_id FROM main WHERE status='approved' AND date='".$temp.$i."'";
$result = mysql_query($query, $link) or die("",mysql_error());
$count[i]= mysql_num_rows($result);
}

日期:

while ($i <= date("m"))
{
    $query = "SELECT call_id FROM main WHERE status='approved' AND date BETWEEN'".$today_y."-".$i."-01' AND '".$today_y."-".$i."-31";
    $result = mysql_query($query, $link) or die("",mysql_error());
    $count_y[i]= mysql_num_rows($result);
}

然后我考虑通过“while”循环将数组中存在的这些计数推送到另一个临时表(一个用于MTD,一个用于YTD),然后使用PHP libchart从这些表中绘制图形。

有更好的方法吗?或者这是唯一的方法吗?

1 个答案:

答案 0 :(得分:4)

只需使用mysql并摆脱大量的php循环,你就可以轻松完成这项工作。对于月份到目前为止这样的事情:

$query="SELECT COUNT(call_id) as 'num_records', date FROM main WHERE status='approved' AND CONCAT(YEAR(date),MONTH(date)) = CONCAT(YEAR(NOW()),MONTH(NOW())) GROUP BY date

该查询将显示一行,显示当天每个月的日期和总记录。