我有一个包含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从这些表中绘制图形。
有更好的方法吗?或者这是唯一的方法吗?
答案 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
该查询将显示一行,显示当天每个月的日期和总记录。