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?!?