【发布时间】:2015-02-11 13:52:23
【问题描述】:
我正在尝试计算每月有多少“返回”的值为“1”。这是我到目前为止所得到的:
$data1y=array();
$data2y=array();
$months_sql = array();
for ($i = 1; $i <= 12; $i++) {
$months_sql[] = date("F", strtotime( date( 'Y-m-01' )." -$i months"));
}
$sql = "SELECT returned, MONTHNAME( date_in) AS date_in
FROM item
WHERE date_in >= NOW() - INTERVAL 1 YEAR";
$query = mysql_query($sql);
foreach($months_sql as $month)
{
while ($row = mysql_fetch_array($query))
{
if($row['date_in'] = $month && $row['returned']=='1')
{
$counter_returned++;
}
$counter_total++;
}
$data1y[] = $counter_returned++;
$data2y[] = $counter_total++;;
}
我想要的是在两个数组中存储每月总共有多少条记录,其中有多少条每月包含 1 条记录。
【问题讨论】:
-
为什么不直接使用 MySQL 的
COUNT()聚合函数呢? -
因为我想在当月没有数据的情况下显示0,而我用mysql做不到
-
所以您只需要处理 COUNT 聚合函数的可能 null 即可。 If 语句就可以解决问题