è possibile fare questo usando solo una query mysql?
è un codice pesante per il server?
Codice PHP:
// la query mysql fornisce le righe db dei 20 commenti più recenti in assoluto
$query = "SELECT A.ID, A.TITOLO, A.THREAD, B.TITOLO AS INDXT
FROM comms AS A
LEFT JOIN post AS B ON B.THREAD = A.THREAD
ORDER BY A.ID DESC
LIMIT 0, 20";
mysql_select_db($database_madh_db, $madh_db);
$QR_lcom = mysql_query($query, $madh_db) or die(mysql_error());
$i=0;
while ($riga = mysql_fetch_assoc($QR_lcom)) { // converto il risultato della query in un array a
foreach ($riga as $colonna => $valore) { // 3 dimensioni in modo da raccogliere i commenti per thread
$bythread[$riga['INDXT']][$i][$colonna] = $valore;
$conto[$riga['INDXT']] += $riga['ID']; // calcolo in quale thread è presente
} // il maggior numero di commenti recenti.
$i++;
}
arsort ($conto);
$bycount = array(); // metto i gruppi di commenti in un nuovo
foreach($conto as $nomegruppo => $cifra){ // array secondo l'ordine dato dal conto dei commenti
$bycount[$nomegruppo] = $bythread[$nomegruppo];
}
foreach ($bycount as $nomegruppo => $gruppo) { // mostro i commenti
echo $nomegruppo.":
";
foreach ($gruppo as $commento) {
echo "".$commento["TITOLO"]." (ID = ".$commento["ID"].")
";
}
}
in pratica devo avere i commenti ordinati per data (o ID), e raccolti per thread. inoltre voglio considerare solo i più recenti di tutti i thread.
PS: in questo codice il meccanismo di conteggio va perfezionato in modo da mettere in risalto i post recenti anche se sono pochi in un thread.
grazie