我有一個任務是根據數據庫結果製作網站文章統計信息。我需要計算每月添加的文章數量,並將這些結果傳遞給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)
的文件,直到$startDate
等於$endDate
。提前致謝。
Upd。數據庫中共有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
請使用正是這一點:'SELECT DATE_FORMAT(日期,'%Y-%m'),COUNT(*)作爲總的FROM文章GROUP BY 1;' – ajreal 2010-12-20 12:42:14
也許這是需要的格式? SELECT date_format(date,'%M%Y'),COUNT(*)作爲總的FROM文章GROUP BY 1;' – thirtydot 2010-12-20 15:01:40
SELECT列錯誤,使用'SELECT date_format(date,'%Y-%m') ,COUNT(*)作爲總FROM文章GROUP BY 1;'OR''SELECT date_format(date,'%m-%Y'),COUNT(*)作爲總FROM文章GROUP BY 1;' – ajreal 2010-12-21 00:49:08