PHP实现无限极分类图文教程


Posted in PHP onNovember 25, 2014

一般来说实现无限极分类都是使用递归或者迭代的方式,小伙伴们看下本文的实现方式吧。

1,数据库设计:

PHP实现无限极分类图文教程

PHP实现无限极分类图文教程

2,代码:

/** 
 * @author koma 
 * @todo   PHP无限极分类 
 */ $cn = mysql_connect('localhost', 'root', '') or die(mysql_error()); 
mysql_select_db('t', $cn) or die(mysql_error()); 
mysql_query('set names utf8'); 
 /** 
 * 从顶层逐级向下获取子类 
 * @param number $pid 
 * @param array $lists 
 * @param number $deep 
 * @return array 
 */ function getLists($pid = 0, &$lists = array(), $deep = 1) { 
    $sql = 'SELECT * FROM category WHERE pid='.$pid; 
    $res = mysql_query($sql); 
    while ( ($row = mysql_fetch_assoc($res)) !== FALSE ) { 
        $row['catename'] = str_repeat('   ', $deep).'|---'.$row['catename']; 
        $lists[] = $row; 
        getLists($row['id'], $lists, ++$deep); //进入子类之前深度+1         --$deep; //从子类退出之后深度-1     } 
    return $lists; 
} 
 function displayLists($pid = 0, $selectid = 1) { 
    $result = getLists($pid); 
    $str = '<select>'; 
    foreach ( $result as $item ) { 
        $selected = ""; 
        if ( $selectid == $item['id'] ) { 
            $selected = 'selected'; 
        } 
        $str .= '<option '.$selected.'>'.$item['catename'].'</option>'; 
    } 
    return $str .= '</select>'; 
} /** 
 * 从子类开始逐级向上获取其父类 
 * @param number $cid 
 * @param array $category 
 * @return array: 
 */ function getCategory($cid, &$category = array()) { 
    $sql = 'SELECT * FROM category WHERE id='.$cid.' LIMIT 1'; 
    $result = mysql_query($sql); 
    $row = mysql_fetch_assoc($result); 
    if ( $row ) { 
        $category[] = $row; 
        getCategory($row['pid'], $category); 
    } 
    krsort($category); //逆序,达到从父类到子类的效果     return $category; 
} 
 function displayCategory($cid) { 
    $result = getCategory($cid); 
    $str = ""; 
    foreach ( $result as $item ) { 
        $str .= '<a href="'.$item['id'].'">'.$item['catename'].'</a>>'; 
    } 
    return substr($str, 0, strlen($str) - 1); 
} 
 echo displayLists(0, 3); 
 echo displayCategory(13);

3,效果图:

PHP实现无限极分类图文教程

是不是很简单呢,小伙伴们可以直接拿去用哈,不收版权费^_^

PHP 相关文章推荐
mysql 性能的检查和优化方法
Jun 21 PHP
php修改时间格式的代码
May 29 PHP
php错误提示failed to open stream: HTTP request failed!的完美解决方法
Jun 06 PHP
php中邮箱地址正则表达式实现与详解
Apr 24 PHP
PHP自动生成后台导航网址的最佳方法
Aug 27 PHP
php数组去重实例及分析
Nov 26 PHP
PHP数组的定义、初始化和数组元素的显示实现代码
Nov 05 PHP
Yii输入正确验证码却验证失败的解决方法
Jun 06 PHP
php 判断IP为有效IP地址的方法
Jan 28 PHP
Docker搭建自己的PHP开发环境
Feb 24 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
Feb 23 PHP
PDO实现学生管理系统
Mar 21 PHP
php获取指定日期之间的各个周和月的起止时间
Nov 24 #PHP
Thinkphp搭建包括JS多语言的多语言项目实现方法
Nov 24 #PHP
thinkphp判断访客为手机端或PC端的方法
Nov 24 #PHP
ThinkPHP公共配置文件与各自项目中配置文件组合的方法
Nov 24 #PHP
php使用str_replace实现输入框回车替换br的方法
Nov 24 #PHP
thinkphp循环结构用法实例
Nov 24 #PHP
thinkphp特殊标签用法概述
Nov 24 #PHP
You might like
使用php 获取时间今天明天昨天时间戳的详解
2013/06/20 PHP
关于js与php互相传值的介绍
2013/06/25 PHP
PHP封装的XML简单操作类完整实例
2017/11/13 PHP
JavaScript的面向对象(二)
2006/11/09 Javascript
解决ueditor jquery javascript 取值问题
2014/12/30 Javascript
javascript实现画不相交的圆
2015/04/07 Javascript
js实现类似菜单风格的TAB选项卡效果代码
2015/08/28 Javascript
js 将图片连接转换成base64格式的简单实例
2016/08/10 Javascript
详解AngularJs中$resource和restfu服务端数据交互
2016/09/21 Javascript
scroll事件实现监控滚动条并分页显示(zepto.js)
2016/12/18 Javascript
nodejs6下使用koa2框架实例
2017/05/18 NodeJs
Vue.js实现微信过渡动画左右切换效果
2017/06/13 Javascript
js判断用户是输入的地址请求的路径(实例讲解)
2017/07/18 Javascript
详解Angular路由之路由守卫
2018/05/10 Javascript
详解如何在Vue项目中发送jsonp请求
2019/10/25 Javascript
javascript实现留言板功能
2020/02/08 Javascript
webpack+vue.js构建前端工程化的详细教程
2020/05/10 Javascript
[43:43]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第三场 11.29
2020/12/02 DOTA
在Python程序中实现分布式进程的教程
2015/04/28 Python
使用rpclib进行Python网络编程时的注释问题
2015/05/06 Python
Windows上使用virtualenv搭建Python+Flask开发环境
2016/06/07 Python
python实现决策树C4.5算法详解(在ID3基础上改进)
2017/05/31 Python
pytorch 调整某一维度数据顺序的方法
2018/12/08 Python
ZABBIX3.2使用python脚本实现监控报表的方法
2019/07/02 Python
关于numpy.where()函数 返回值的解释
2019/12/06 Python
Python3.x+迅雷x 自动下载高分电影的实现方法
2020/01/12 Python
python 异步async库的使用说明
2020/05/04 Python
Selenium环境变量配置(火狐浏览器)及验证实现
2020/12/07 Python
css3 中的新特性加强记忆详解
2016/04/16 HTML / CSS
工程造价自荐信
2013/10/09 职场文书
西安交大自主招生自荐信
2014/01/27 职场文书
新任教师自我鉴定
2014/02/24 职场文书
省级青年文明号申报材料
2014/05/23 职场文书
护理学专业求职信
2014/06/29 职场文书
对公司的意见和建议
2015/06/04 职场文书
Jackson 反序列化时实现大小写不敏感设置
2021/06/29 Java/Android