ciao, io ho una tabella news strutturata + o - così:
|id|titolo|testo|annoMese|

annoMese è un campo 4 cifre dato da date("ym");

la stampa che dovrei fare è una roba del tipo

Giugno 2007:
titolo1 - testo1
titolo2 - testo2

Luglio 2007:
titolo3 - testo3

ecc..

e fin qui todo bien, uso un ciclo del genere:
Codice PHP:
$myMesi mysql_query("SELECT annoMese FROM news GROUP BY annoMese ORDER BY annoMese DESC");
while(list(
$myAnnoMese)=mysql_fetch_array($myMesi)){
 
$nomeMese=trovaMese($myAnnoMese);
 echo 
$nomeMese;
 
$myNews=mysql_query("SELECT titolo, testo FROM news WHERE annoMese='$myAnnoMese'");
 while(list(
$titolo$testo)=mysql_fetch_array($myNews)){
  echo 
"
$titolo - $testo";
 }

il problema è che l'utente deve poter scegliere di visualizzare, ad esempio, solo 2 risultati.
nell'esempio precedente quindi la visualizzazione dovrebbe fermarsi a giugno, invece mettendo il LIMIT mi pesca 2 risultati per ogni mese!

dovrei quindi prima fare la query con il LIMIT pescando solo gli id, poi scremare i mesi, e quindi stampare...

non c'è un modo più semplice?!?

perchè a me viene in mente una query del tipo

Codice PHP:
$a="SELECT id FROM news ORDER BY annoMese DESC LIMIT 0, 3";
$b="";
while(list(
$idN)=mysql_fetch_array($a)){
    
$b.="|":$idN."|";
}
$c="SELECT annoMese FROM news WHERE id IN '$b' GROUP BY annoMese ORDER BY annoMese DESC";
while(list(
$annoMese)=mysql_fetch_array($c)){
    
$nomeMese=trovaMese($myAnnoMese);
    echo 
"$nomeMese 
"
;
    
$d=mysql_query("SELECT titolo, testo FROM news WHERE annoMese='$annoMese' && id IN '$b'");
    while(list(
$titolo$testo)=mysql_fetch_array($d)){
        echo 
"$titolo$testo
"
;
    }

(non sò se funziona eh, ma a sentimento quello che dovrebbe fare è quello )

non c'è un modo di avere lo stesso risultato con meno query?!?