我想用PHP-MySql在我的网站上实现高级评论系统。为此,我最终选择了一个3级评论 - 回复系统。 那么,为此我遇到了this文章来实现SQL数据库的数据结构。
我计划将嵌套的set mdoel用于我想要使用的功能。评论的结构是这样的 -
<ul>
<li>Parent comment</li>
<ul>
<li>First reply of parent comment</li>
<ul>
<li>reply of the previous reply</li>
<ul>
<li>reply of the previous reply</li>
<li>another reply of the previous reply</li>
</ul>
<li>another reply of the previous comment</li>
</ul>
<li>second reply of the parent comment</li>
</ul>
</ul>
对于这种类型的结构,我一直在使用PHP来显示检测父项及其子唯一的查询(用于获取与每个注释相关联的用户详细信息)并在其中生成输出方式如上所示。有谁知道如何做到这一点。请帮帮我。
编辑:
我在SQL中有一个单独的用户表,链接到注释表user.id=comment.id
。因此,考虑到这一点,为每条评论检测用户活动的推荐方法是什么?我的意思是,对于前 - 我想获取用户名和电子邮件,以获得父评论的子评论2.哇可以这样做吗?
答案 0 :(得分:1)
使用“查找节点深度”中的查询,此PHP代码将创建嵌套列表。
$cur_depth = -1;
while ($row = mysqli_fetch_assoc($query)) { // Loop through results of query
if ($row['depth'] > $cur_depth) {
echo "<ul>\n";
$cur_depth = $row['depth'];
}
else while ($cur_depth > $row['depth']) {
echo "</ul>\n";
$cur_depth--;
}
echo "<li>" . $row['comment'] . "</li>\n";
}
while ($cur_depth > -1) {
echo "</ul>\n";
$cur_depth--;
}