热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

thinkphp实现无限分类

以上是效果图1.数据库设计2.添加后数据库的数据如下图解析下:cid栏目自增idpid栏目的父类id,id为0表示是顶级栏目cat_name栏目名称p...

\

以上是效果图

1.数据库设计

\

2.添加后数据库的数据如下图

\

解析下:cid  栏目自增id

pid 栏目的父类id,id为0表示是顶级栏目

cat_name  栏目名称

path 表示栏目的层级关系

实现效果主要用到:

mysql的一个函数  concat():返回结果为连接参数产生的字符串

1,控制器的分类显示方法

  1. public function   fenlei  (){ 
  2. $cate=M('Category'); 
  3. $list=$cate->field("cid,cat_name,pid,path,concat(path,'-',cid) as bpath")->order('bpath')->select(); 
  4. foreach($list as $key=>$value){ 
  5. $list[$key]['count']=count(explode('-',$value['bpath'])); 
  6. $this->assign('alist',$list); 
  7. $this->display(); 

2,控制器的分类添加方法

  1. public function addCat(){ 
  2. $cate=D('Category'); 
  3. if($cate->create()){ 
  4. if($cate->add()){ 
  5. $this->redirect('/Test/fenlei'); 
  6. }else
  7. $this->error('添加栏目失败'); 
  8. }else
  9. $this->error($cate->getError()); 

3,栏目模型类

  1. class CategoryModel extends Model{ 
  2. protected $_auto=array
  3. array('path','tclm',3,'callback'), 
  4. ); 
  5. function tclm(){ 
  6. $pid=isset($_POST['pid'])?(int)$_POST['pid']:0; 
  7. //echo ($pid); 
  8. if($pid==0){ 
  9. $data=0; 
  10. }else
  11. $list=$this->where("cid=$pid")->find(); 
  12. $data=$list['path'].'-'.$list['cid'];//子类的path为父类的path加上父类的cid 
  13. return $data
  14. ?> 

4,主要的html代码

  1.  
  2. "__URL__/addCat" method="post" > 
  3. "text-align:center;margin-top:80px;" > 
  4. 请选择父类栏目:"pid"   size="20"  style="width:250px;"
  5. "alist"   id="v" > 
  6. "{$v['cid']}" > 
  7. <for start="0" end="$v[&#39;count&#39;]"
  8.     
  9. for
  10. {$v[&#39;cat_name&#39;]} 
  11.  
  12.  
  13.  

  14.  
  15. 新的栏目名称:"text" name="cat_name" style="width:230px;"  />
     
  16. "submit"  value="添加栏目" /> 
 
  •  
  •  

  • 推荐阅读
    • Docker的安全基准
      nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
    • 程序员妻子吐槽:丈夫北漂8年终薪3万,存款情况令人意外
      一位程序员的妻子在网上分享了她丈夫在北京工作八年的经历,月薪仅3万元,存款情况却出乎意料。本文探讨了高学历人才在大城市的职场现状及生活压力。 ... [详细]
    • 在 Windows 10 中,F1 至 F12 键默认设置为快捷功能键。本文将介绍几种有效方法来禁用这些快捷键,并恢复其标准功能键的作用。请注意,部分笔记本电脑的快捷键可能无法完全关闭。 ... [详细]
    • 技术分享:从动态网站提取站点密钥的解决方案
      本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
    • 探讨如何高效使用FastJSON进行JSON数据解析,特别是从复杂嵌套结构中提取特定字段值的方法。 ... [详细]
    • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
    • PHP 5.2.5 安装与配置指南
      本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
    • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
    • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
    • 解决PHP与MySQL连接时出现500错误的方法
      本文详细探讨了当使用PHP连接MySQL数据库时遇到500内部服务器错误的多种解决方案,提供了详尽的操作步骤和专业建议。无论是初学者还是有经验的开发者,都能从中受益。 ... [详细]
    • 在哈佛大学商学院举行的Cyberposium大会上,专家们深入探讨了开源软件的崛起及其对企业市场的影响。会议指出,开源软件不仅为企业提供了新的增长机会,还促进了软件质量的提升和创新。 ... [详细]
    • 本文详细介绍了如何通过多种编程语言(如PHP、JSP)实现网站与MySQL数据库的连接,包括创建数据库、表的基本操作,以及数据的读取和写入方法。 ... [详细]
    • 本文详细介绍了 BERT 模型中 Transformer 的 Attention 机制,包括其原理、实现代码以及在自然语言处理中的应用。通过结合多个权威资源,帮助读者全面理解这一关键技术。 ... [详细]
    • 深入理解Java中的volatile、内存屏障与CPU指令
      本文详细探讨了Java中volatile关键字的作用机制,以及其与内存屏障和CPU指令之间的关系。通过具体示例和专业解析,帮助读者更好地理解多线程编程中的同步问题。 ... [详细]
    • 如何在PHPcms网站中添加广告
      本文详细介绍了在PHPcms网站后台添加广告的方法,涵盖多种常见的广告形式,如百度广告和Google广告,并提供了相关设置的步骤。同时,文章还探讨了优化网站流量的SEO策略。 ... [详细]
    author-avatar
    美好生活的日子
    这个家伙很懒,什么也没留下!
    Tags | 热门标签
    RankList | 热门文章
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有