Я не уверен, что понимаю вопрос, но если вам нужны только цифры всех сообщений в месяц, используйте запрос, подобный этому:
SELECT DATE_FORMAT(publishdate, '%Y%m') AS publishmonth, count(*) AS entrycount
FROM entries GROUP BY DATE_FORMAT(publishdate, '%Y%m')
Если вы хотите, чтобы все сообщения за определенный месяц:
SELECT * FROM entries WHERE publishdate > '2009-01' AND publishdate < '2009-02';
И если вы хотите перечислить всех сообщений, сгруппированных по месяцам, на одной странице, просто выберите их, отсортированные по publishdate
, и выполните группировку локально.