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 相关文章推荐
PHP 实例化类的一点摘记
Mar 23 PHP
彻底杜绝PHP的session cookie错误
Aug 09 PHP
php empty() 检查一个变量是否为空
Nov 10 PHP
ThinkPHP的L方法使用简介
Jun 18 PHP
PHP date()函数警告: It is not safe to rely on the system解决方法
Aug 20 PHP
php内存缓存实现方法
Jan 24 PHP
基于GD2图形库的PHP生成图片缩略图类代码分享
Feb 08 PHP
ThinkPHP控制器详解
Jul 27 PHP
thinkphp多层MVC用法分析
Dec 30 PHP
Zend Framework+smarty用法实例详解
Mar 19 PHP
深入解析PHP的Laravel框架中的event事件操作
Mar 21 PHP
详解PHP 7.4 中数组延展操作符语法知识点
Jul 19 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函数代码
2010/04/22 PHP
PHP在字符断点处截断文字的实现代码
2011/04/21 PHP
str_replace只替换一次字符串的方法
2013/04/09 PHP
smarty模板引擎之内建函数用法
2015/03/30 PHP
PHP简单实现断点续传下载的方法
2015/09/25 PHP
详解PHP实现异步调用的4种方法
2016/03/14 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
2016/11/18 PHP
通过PHP实现用户注册后邮箱验证激活
2020/11/10 PHP
javascript中使用css需要注意的地方小结
2010/09/01 Javascript
使用javascript实现页面定时跳转总结篇
2013/09/21 Javascript
js 自动播放的实例代码
2013/11/19 Javascript
WebGL利用FBO完成立方体贴图效果完整实例(附demo源码下载)
2016/01/26 Javascript
js操作DOM--添加、删除节点的简单实例
2016/07/08 Javascript
xmlplus组件设计系列之选项卡(Tabbar)(5)
2017/05/03 Javascript
基于angular2 的 http服务封装的实例代码
2017/06/29 Javascript
JavaScript之Map和Set_动力节点Java学院整理
2017/06/29 Javascript
详解vue中点击空白处隐藏div的实现(用指令实现)
2018/04/19 Javascript
element-ui中select组件绑定值改变,触发change事件方法
2018/08/24 Javascript
vue基础之使用get、post、jsonp实现交互功能示例
2019/03/12 Javascript
Python中使用HTMLParser解析html实例
2015/02/08 Python
Python2.x版本中基本的中文编码问题解决
2015/10/12 Python
利用Python如何生成hash值示例详解
2017/12/20 Python
Python基于opencv的图像压缩算法实例分析
2018/05/03 Python
使用matplotlib画散点图的方法
2018/05/25 Python
详解python 3.6 安装json 模块(simplejson)
2019/04/02 Python
详解python中的index函数用法
2019/08/06 Python
Django 实现 Websocket 广播、点对点发送消息的代码
2020/06/03 Python
Python学习之os模块及用法
2020/06/03 Python
详解pycharm2020.1.1专业版安装指南(推荐)
2020/08/07 Python
css3让div随鼠标移动而抖动起来
2014/02/10 HTML / CSS
干部下基层实施方案
2014/03/14 职场文书
社区党的群众路线教育实践活动总结材料
2014/10/31 职场文书
小学生五一劳动节演讲稿
2015/03/18 职场文书
2015年医德医风工作总结
2015/04/02 职场文书
中学后勤工作总结2015
2015/07/22 职场文书
css 中多种边框的实现小窍门
2021/04/07 HTML / CSS