Si vous n'avez besoin que de 2 niveaux, voici comment procéder en une seule requête :
Votre tableau - id, parent_id, comment
colonnes
Code
$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'];
}
}
Dans $threads
vous aurez tous vos threads principaux et $threads[$id]['replies']
détient toutes les réponses. Les discussions sont triées - dernier =premier, ajoutez un peu de pagination et vous êtes prêt à partir.