Thinkphp简单无限级分类

转自:http://www.php1.cn/Content/Thinkphp_JianDanWuXianJiFenLei.html

松林貌似很长时间没写文章了。。。。

首先无限极分类的文章太多了。工作这么长时间说实话还真没写过这东西。前几天出了个需求,就是评论功能,主要是评论的回复功能,能无限回复。这铁定是用无限极分类了。自己没写过,确实也不想写(本人比较懒,懒得动脑子)。别人发过来几个无限极分类的类,看了之后着实脑袋疼。松林自己网站上的功能也挺简单的。还是自己研究写吧,   下面数据库结构:

 

这应该是无限极分类最简单的数据库结构了。

 

首先呢,这是thinkphp无限极分类,那么咱们就按照thinkphp的结构来写。比如你的模板显示方法叫index(),那么咱就在index()方法里面写:

$message = M('message');//评论


//有必要说下where条件,当然我这是项目里的代码,评论需要显示出来当前文章的评论,这个条件就是查询当前文章评论

public $listall = array();

$listmessage = $message->where('article_id = '.$list['artid'].'')->order('id DESC')->select(); //暂且你的表名字为message

foreach( $listmessage as $v){
if($v['pid'] == 0){
echo $v['username']."<br />";
$this->listall[] = $v;
$this->wuxian_f($v['id'] ,$nb );
}
}

 

下面的这个就是调用的无限极分类方法:

//无限极分类测试
protected function wuxian_f( $fid ,$nb){
$message = M('message');
$hf = $message->where('pid = "'.$fid.'"')->select();
if($hf){
foreach($hf as $c){
$nb = $nb . "----";
echo  $nb.$c['username']."<br />";
$this->listall[] = $c;
$hc = $message->where('pid = "'.$c['id'].'"')->find();
if($hc){
$nb = $nb . "----";
echo $nb.$hc['username']."<br />";
$this->listall[] = $hc;
$this->wuxian_f( $hc['id'] ,$nb);


}
}
}
}

如果想去前台遍历的话,就把$this->assign('mess',$this->listall);  listall赋值到view页面,然后前台页面循环mess就可以了。

至此无限极分类的显示逻辑已完成了。其实无限极分类的逻辑之处都在显示处,增加、删除的逻辑都非常简单,只需把pid传到数据库就可以了。所以我不写了。。。。。。毕竟写的很仓促,可能有很多不可取之处,欢迎各位朋友给松林纠正。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值