Beh.... la query di mariox non mi sembra sia quella adatta.
Primo perché a te le news serve pubblicarle in ordine di data decrescente, secondo poi perché non le separi per mese/anno.
Io avevo lo stesso tuo problema ed ho aggirato con un barbatrucco che, sicuramente non sarà né performante né il metodo migliore, ma di sicuro funziona.
Innanzi tutto, nella tabella dove inserisco le news, oltre al campo data in formato timestamp, ho aggiunto due campi: uno per il mese ed uno per l'anno scritti in formato numerico.
Nella pagina delle news, poi faccio il seguente ciclo:
Codice PHP:
$anno_in_corso = date("Y");
$mese_in_corso = date("m");
for ($i = $mese_in_corso; $i >= 1; $i--) {
$sql = "
SELECT id, testo, link, quantaltro
FROM news
WHERE anno = '$anno_in_corso'
AND mese = '$i'
ORDER BY data DESC
";
$query = mysql_query($sql);
// qui scrivi la routine per stamprare a video le notizie
mysql_free_result($query);
}
Con questo ciclo fai una query per ogni mese.
Indubbiamente carichi il server ma almeno risolvi.
Se poi qualcuno avesse un metodo migliore e più performante, saremmo tutti ben contenti di vederlo!