Se hai bisogno solo di 2 livelli, ecco un modo con una query:
La tua tavola - id, parent_id, comment
colonne
Codice
$rows = mysql_query('
select *
FROM
comments
ORDER BY
id DESC');
$threads = array();
foreach($rows as $row) {
if($row['parent_id'] === '0') {
$threads[$row['id']] = array(
'comment' => $row['comment'],
'replies' => array()
);
} else {
$threads[$row['parent_id']]['replies'][] = $row['comment'];
}
}
In $threads
avrai tutti i tuoi thread principali e $threads[$id]['replies']
contiene tutte le risposte. I thread sono ordinati - latest =first, aggiungi un po' di paginazione e sei a posto.