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, .....)

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top