Jeśli potrzebujesz tylko 2 poziomów, oto sposób z jednym zapytaniem:
Twój stół - id, parent_id, comment
kolumny
Kod
$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'];
}
}
W $threads
będziesz mieć wszystkie swoje główne wątki i $threads[$id]['replies']
zawiera wszystkie odpowiedzi. Wątki są posortowane - najnowsze =pierwsze, dodaj stronicowanie i gotowe.