Listando entradas do blog por mês
Pergunta
Eu estou escrevendo código personalizado para criar um blog. Eu preciso da página arquivos para listar todas as entradas de blog por mês. Eu não posso chegar a uma maneira de fazer isso. Eu acho que não deve ser muito difícil, pois é uma característica comum em todos os blogs. A estrutura da tabela é (postid, posttitle, publishdate, .....)
Solução
Eu não tenho certeza eu entendo a pergunta, mas se você quiser números apenas de todas as mensagens por mês, use uma consulta como esta:
SELECT DATE_FORMAT(publishdate, '%Y%m') AS publishmonth, count(*) AS entrycount
FROM entries GROUP BY DATE_FORMAT(publishdate, '%Y%m')
Se você quiser todas as mensagens para um determinado mês:
SELECT * FROM entries WHERE publishdate > '2009-01' AND publishdate < '2009-02';
E se você quiser a lista todas mensagens agrupadas por mês em uma única página, basta selecioná-los classificado por publishdate
e fazer o agrupamento localmente.
Outras dicas
Se as entradas vêm de um banco de dados SQL, é mais fácil de pedir que para realizar a classificação para você usando um ORDER BY
. Algo como
select * from posts order by publishdate
Algo como este pseudo-código:
SELECT `publishdate` FROM `entries` ORDER BY DESC `publishdate` GROUP BY YEAR(`publishdate`), MONTH(`publishdate`);
foreach ($dates as $date) {
$date = mysql_real_escape_string($date)
SELECT * FROM `entries` WHERE `publishdate` = $date
}
eu acho.