我的任务是根据数据库结果制作网站文章统计信息。我需要计算每月添加的文章数量,并将这些结果传递给 JavaScript stats 函数。
我要做的第一件事是找到添加文章的整个时期:
SELECT MIN(date) as startdate FROM articles LIMIT 1
SELECT MAX(date) as enddate FROM articles LIMIT 1
现在我有了以 . 开头$startDate
和结尾的期间$endDate
。这些变量是数据库中的 unix 时间戳。数据库中的列date
也是unix时间戳。
接下来,我应该找到每个月添加的文章数量,在 foreach 循环中进行查询,例如:
SELECT COUNT(id) as total FROM articles
WHERE date > ".$startMonth." AND date < ".$endMonth
但要做到这一点,我需要找到该期间每个月的第一天和最后几天。而我在这一刻卡住了。所以请你建议我如何找到这些第一天和最后一天作为数组。我想我应该strtotime("+1 month",$date)
在 while 循环中做一些事情,直到$startDate
equals $endDate
。提前致谢。
更新。数据库中共有 46 篇文章。我愿意得到的是按月分组的结果:
SELECT date, COUNT(id) as total FROM `articles`
WHERE `author`=$author
GROUP BY date_format(date, '%Y-%m')
结果:月职位 11-2010 13 12-2010 33