我正在开发评论系统,其中显示帖子、评论(父评论)和评论回复(子评论)。
MySql 评论表如下所示:
comment_id int primary_key
post_id int // where i save the post id
author varchar
comment text
parent_id int // where i save parent comment id in case this comment is reply of another comment
现在,我的情况是当我通过 MySql 结果集打印评论信息时。正是在尝试打印子评论(其他评论的评论)和父评论(帖子的评论)时。
我目前实现这一点的方法是选择所有没有 parent_id 的评论
SELECT * FROM comments WHERE parent_id = null
并使用 PHP 循环所有结果,然后在循环内为每个评论搜索是否有任何子评论进行另一个查询。
<?php
$sql_result_set;
while($comment = mysql_fetch_array($sql_result_set, MYSQL_ASSOC){
// process comment info
$sql = "SELECT * FROM comments where parent_id = ".$comment['comment_id'];
$result = mysqli_query($sql);
if(mysql_num_rows($result)>0){
while($child_comments = mysql_fetch_array($result, MYSQL_ASSOC)){
// child comments of the parent
}
}
}
?>
现在,我的问题是“有没有更好的方法来做同样的事情?”
感谢您的帮助
祝一切顺利,