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 相关文章推荐
桌面中心(四)数据显示
Oct 09 PHP
php echo()和print()、require()和include()函数区别说明
Mar 27 PHP
PHP 面向对象 final类与final方法
May 05 PHP
.htaccess文件保护实例讲解
Feb 06 PHP
php使用sql数据库 获取字段问题介绍
Aug 12 PHP
PHP自动生成后台导航网址的最佳方法
Aug 27 PHP
PHP swfupload图片上传的实例代码
Sep 30 PHP
ThinkPHP CURD方法之table方法详解
Jun 18 PHP
几道坑人的PHP面试题 试试看看你会不会也中招
Aug 19 PHP
学习php开源项目的源码指南
Dec 21 PHP
php遍历类中包含的所有元素的方法
May 12 PHP
php简单统计字符串单词数量的方法
Jun 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 nl2br函数 将换行字符转成 &amp;lt;br&amp;gt;
2009/08/21 PHP
jQuery+PHP+ajax实现微博加载更多内容列表功能
2014/06/27 PHP
php mysql数据库操作类(实例讲解)
2017/08/06 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
php微信公众号开发之欢迎老朋友
2018/10/20 PHP
关于js中alert弹出窗口文本换行问题简单详细说明
2012/12/11 Javascript
js用拖动滑块来控制图片大小的方法
2015/02/27 Javascript
jQuery实现返回顶部功能
2016/02/23 Javascript
JS判断元素是否在数组内的实现代码
2016/03/30 Javascript
json与jsonp知识小结(推荐)
2016/08/16 Javascript
JS实现可编辑的后台管理菜单功能【附demo源码下载】
2016/09/13 Javascript
Javascript 实现全屏滚动实例代码
2016/12/31 Javascript
微信小程序 特效菜单抽屉效果实例代码
2017/01/11 Javascript
Javascript中构造函数要注意的一些坑
2017/01/23 Javascript
基于vue-ssr服务端渲染入门详解
2018/01/08 Javascript
解决angularjs中同步执行http请求的方法
2018/08/13 Javascript
[05:24]TI9采访——教练
2019/08/24 DOTA
使用py2exe在Windows下将Python程序转为exe文件
2016/03/04 Python
Python爬虫:通过关键字爬取百度图片
2017/02/17 Python
python扫描proxy并获取可用代理ip的实例
2017/08/07 Python
python实现将一个数组逆序输出的方法
2018/06/25 Python
scikit-learn线性回归,多元回归,多项式回归的实现
2019/08/29 Python
Python hashlib加密模块常用方法解析
2019/12/18 Python
深入了解如何基于Python读写Kafka
2019/12/31 Python
基于spring boot 日志(logback)报错的解决方式
2020/02/20 Python
奢华时尚的创新平台:Baltini
2020/10/03 全球购物
工作迟到检讨书
2014/02/21 职场文书
公司请假条格式
2014/04/11 职场文书
学习雷锋标语
2014/06/25 职场文书
乡镇群众路线整改落实情况汇报
2014/10/28 职场文书
小学优秀学生评语
2014/12/29 职场文书
构建和谐校园倡议书
2015/01/19 职场文书
小学科学课教学反思
2016/02/23 职场文书
学生检讨书范文
2019/06/24 职场文书
Mysql关于数据库是否应该使用外键约束详解说明
2021/10/24 MySQL
“鬼灭之刃”热度不减,其成功背后的原因是什么?
2022/03/22 日漫