Cốt lõi của vấn đề là:
$comments = $commentClass->fetch_article_comments($article_id);
Tôi giả sử, hàm này somwhere tạo và chạy SQL, tương tự như SELECT ... WHERE comments.article_id=$article_id
. Điều này là chưa đủ - bạn cần một cái gì đó như
$comments = $commentClass->fetch_article_comments($article_id, $parent_id);
dịch sang SQL tương tự như SELECT ... WHERE comments.article_id=$article_id AND comments.comment_parent ($parent_id>0)?"=$parent_id":"IS NULL"
Bây giờ bạn có thể viết hàm PHP của mình:
function display_comments ($article_id, $parent_id=0, $level=0) {
$comments = $commentClass->fetch_article_comments($article_id, $parent_id);
foreach($comments as $comment) {
$comment_id = $comment['comment_id'];
$member_id = $comment['member_id'];
$comment_text = $comment['comment_text'];
$comment_timestamp = timeAgo($comment['comment_timestamp']); //get time ago
//render comment using above variables
//Use $level to render the intendation level
//Recurse
display_comments ($article_id, $comment_id, $level+1);
}
}
Và cuối cùng gọi nó bằng display_comments ($article_id);