2010-12-10 21 views
0

Je suis fondamentalement en train d'essayer de coder un système simple de commentaires filetés où les utilisateurs peuvent commenter le commentaire d'un autre utilisateur. Cela n'autorisera qu'un seul niveau de commentaires.PHP: Commentaires sur les questions rapides

Le tableau des commentaires dans la base de données est quelque chose comme: - id - texte - horodatage - parent_id (peut être NULL)

Ma question est de savoir comment dois-je interroger les commentaires et leurs enfants (commentaires) ? Je ne suis pas sûr de savoir comment ils seraient des endroits dans le tableau, puis comment les boucler et les sortir correctement.

Votre aide est très appréciée =)

Répondre

2

Si son seul niveau profond, vous pouvez obtenir tous les commentaires et munge dans la structure que vous voulez. Vous pourriez faire quelque chose comme ceci:

function get_comments() 
{ 
    $sql = 'select * from comments order by timestamp'; 
    $result = $this->db->query($sql)->result(); 

    $comments = array(); 
    foreach ($result as $row) 
    { 
     if ($row->parent_id) 
     { 
      $comments[$row->parent_id]->children[] = $row; 
     } 
     else 
     { 
      $comments[$row->id] = $row; 
      $comments[$row->id]->children = array(); 
     } 
    } 

    return array_values($comments); 
}