在TP5数据库中四个字段实现无限分类的示例
ThinkPHP  /  管理员 发布于 8年前   380
效果: 还有一个没有写完的递归无限分类 Model 以上这篇在TP5数据库中四个字段实现无限分类的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。CREATE TABLE `NewTable` (`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT ,`pid` int(10) UNSIGNED ZEROFILL NOT NULL ,`name` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,`path` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,PRIMARY KEY (`id`))ENGINE=MyISAMDEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ciAUTO_INCREMENT=53CHECKSUM=0ROW_FORMAT=DYNAMICDELAY_KEY_WRITE=0;
四个字段的无限分类
order('concat(path,"-",id)')->select(); #order('concat(path,"-",id)')自动排序 foreach ($data as &$cate) { $prefix=''; $i=count(explode("-", $cate['path'])); for($n=0;$n<=$i;$n++){ $prefix.="--"; } $cate['pre']=$prefix; } $this->assign('cates',$data); return $this->fetch(); } public function add(){ $db=Db::name('categroy'); if($_POST['pid']==0){ $_POST['path']=0; }else{ $_POST['path']=$db->where('id='.$_POST['pid'])->value('path')."-".$_POST['pid']; } $name=$_POST['name']; if($db->insert($_POST)){ $this->success('添加成功'); }else{ $this->error('添加失败'); } #原理:4个字段 /* ID PID NAME PATH 1 0 服装 0-1 2 0 游戏 0-2 3 1 男装 0-1-3 4 3 上衣 0-1-3-4 */ }}
public function user(){ $db=Db::name('categroy1'); // $data=$db->getTree(); $opt=$db->getOption($data); $this->assign('opt',$opt); $this->assign('cates',$data); return $this->fetch(); } public function doAdd(){ //执行添加数据 $db=Db::name('categroy1'); if($db->insert()){ $this->success('添加成功',url('index')); }else{ $this->error('添加失败',url('index')); } return $this->fetch(); }
where('pid='.$pid)->select(); foreach($data as &$cate){ #通过该分类的主键id查询该分类的子类 $cate['cates']=$this->getTree($cate['id']); } return $data; } #拼装属性结构 #通过一个数组组装option public function getOption($data){ static $i=0; for($n=0;$n<=$i*2;$n++){ $prefix.="-"; } foreach ($data as $cate) { $opt.=""; #判断该分类下是否包含子类,如果有子类,将数组传入接着拼装 if(!empty($case['cates'])){ $i++; $opt.=$this->getOption($case['cases']); }else{ $i=0; } return $opt; } }}
您可能感兴趣的文章:
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号