您好,欢迎访问一九零五行业门户网

thinkphp无限评论

使用thinkphp和递归算法写的一个无限评论
无限评论采用的递归算法遍历评论
数据表结构为:
create table `blog_comment` (
`id` int(10) not null,
`content` varchar(500) not null,
`pid` int(10) not null,
`email` varchar(50) not null,
`add_time` int(30) not null,
`author` varchar(30) not null,
`isshow` int(1) not null,
`ip` varchar(50) not null
) engine=innodb auto_increment=11 default charset=utf8;
其中:id为本条评论id,pid为上级评论id,(即本条评论是回复哪一条评论的)
本算法思路,将pid初始化为0,代表一级评论,先查询1级评论,然后再将1级评论的id赋值给pid,调用自身算法遍历1级评论下面的回复,以此类推,一直循环调用自身算法,遍历下一级评论;
算法为:
//评论列表
//评论列表
function commentlist($pid=0,&$commentlist=array(),$spac=0,$pauthor=null){
static $i=0;
$spac=$spac+1;//初始为1级评论
$pauthor=$pauthor;
$list=m('comment')->
field('blog_comment.id,blog_comment.add_time,blog_comment.author,blog_comment.content,pid,blog_comment.id,blog_comment.pid')-> where(array('blog_comment.pid'=>$pid))->select();
foreach($list as $k=>$v){
$commentlist[$i]['level']=$spac;//评论层级
$commentlist[$i]['author']=$v['author'];
$commentlist[$i]['id']=$v['id'];
$commentlist[$i]['pid']=$v['pid'];//此条评论的父id
$commentlist[$i]['content']=$v['content'];
$commentlist[$i]['time']=$v['add_time'];
$commentlist[$i]['pauthor']=$pauthor;//此条评论是回复谁的
$i++;
$this->commentlist($v['id'],$commentlist,$spac,$v['author']);
}
return $commentlist;
}
最后结果:
thinkphp无限评论.zip ( 3.01 mb 下载:140 次 )
ad:真正免费,域名+虚机+企业邮箱=0元
其它类似信息

推荐信息