1.first 文章发布 一对一 一问一答
列如 :朋友圈QQ空间等
a:此文章真有意思
b回复a:我感觉也挺有意思
c:文章感觉没啥意思
mysql 建表
只需要建一个评论表足以 评论表 comment
id textid userid user_id content create_time
id 文章标题 评论者id 目标用户id 评论内容 评论时间
只需要根据时间 倒序查询 显示即可
2.second 树桩评论(无限极分类)
列如:CSDN 的评论与回复
a:此文章真有意思
b回复a:真的假的
a:回复b:当然是真的
c回复a:你这个是假的把,我反正不信
mysql 建表
需要建两张表 评论表 comment 回复表 reply
comment 表
id userid content textid create_time
id 评论者id 评论内容 文章id 评论时间
relply 表
id userid user_id content commentid replyid create_time
ID 评论者id 回复目标id 回复内容 评论id 回复id 回复时间
replyid 为0 时,则为回复评论表,不为零是则为回复 其他人 回复;
代码
public function dg($comments, $reply = 0)
{
$data = [];
foreach ($comments as $key => &$value) {
if ($value['replyid'] == $reply) {
$value['reply'] = $this->dg($comments,$value['id']);
$data[] = $value;
}
}
return $data;
}
调用:$this->dg( $comments);
返回实例
array(2) {
[0] => array(8) {
["id"] => int(6)
["comment_id"] => int(1)
["replyid"] => int(0)
["content"] => string(21) "这个文章很好呀"
["userid"] => int(2)
["user_id"] => int(0)
["create_time"] => string(19) "2020-06-17 15:24:11"
["reply"] => array(1) {
[0] => array(8) {
["id"] => int(8)
["comment_id"] => int(1)
["replyid"] => int(6)
["content"] => string(42) "我怕感觉也还行吧,挺有意思的"
["userid"] => int(4)
["user_id"] => int(2)
["create_time"] => string(19) "2020-06-18 15:25:58"
["reply"] => array(2) {
[0] => array(8) {
["id"] => int(9)
["comment_id"] => int(1)
["replyid"] => int(8)
["content"] => string(18) "我感觉太差了"
["userid"] => int(5)
["user_id"] => int(4)
["create_time"] => string(19) "2020-06-18 15:27:52"
["reply"] => array(0) {
}
}
[1] => array(8) {
["id"] => int(10)
["comment_id"] => int(1)
["replyid"] => int(8)
["content"] => string(21) "我感觉也不太行"
["userid"] => int(2)
["user_id"] => int(5)
["create_time"] => string(19) "2020-06-17 21:12:10"
["reply"] => array(0) {
}
}
}
}
}
}
[1] => array(8) {
["id"] => int(7)
["comment_id"] => int(1)
["replyid"] => int(0)
["content"] => string(24) "这个文章真有意思"
["userid"] => int(3)
["user_id"] => int(0)
["create_time"] => string(19) "2020-06-17 15:24:59"
["reply"] => array(0) {
}
}
}
OK。。