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 定界符 使用技巧
Jun 14 PHP
Mysql数据库操作类( 1127版,提供源码下载 )
Dec 02 PHP
rephactor 优秀的PHP的重构工具
Jun 09 PHP
PHP 第二节 数据类型之数组
Apr 28 PHP
php二维数组排序详解
Nov 06 PHP
php简单实现屏蔽指定ip段用户的访问
Apr 29 PHP
Session 失效的原因汇总及解决丢失办法
Sep 30 PHP
PHP查询并删除数据库多列重复数据的方法(利用数组函数实现)
Feb 23 PHP
php+redis实现注册、删除、编辑、分页、登录、关注等功能示例
Feb 15 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
Mar 10 PHP
基于laravel belongsTo使用详解
Oct 18 PHP
PHP实现简单的计算器
Aug 28 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操作MySQL中BLOB字段的方法示例【存储文本与图片】
2017/09/15 PHP
PHP设计模式(九)外观模式Facade实例详解【结构型】
2020/05/02 PHP
PHP7 其他修改
2021/03/09 PHP
javascript &amp;&amp;和||运算法的另类使用技巧
2009/11/28 Javascript
js父页面与子页面不同时显示的方法
2014/10/16 Javascript
Bootstrap3使用typeahead插件实现自动补全功能
2016/07/07 Javascript
详解微信小程序开发—你期待的分享功能来了,微信小程序序新增5大功能
2016/12/23 Javascript
node.js入门教程之querystring模块的使用方法
2017/02/27 Javascript
详解Vue 2.0封装axios笔记
2017/06/22 Javascript
JavaScript比较同一天的时间大小实例代码
2018/02/09 Javascript
axios向后台传递数组作为参数的方法
2018/08/11 Javascript
jQuery实现的3D版图片轮播示例【滑动轮播】
2019/01/18 jQuery
小程序自定义模板实现吸顶功能
2020/01/08 Javascript
使用python3.5仿微软记事本notepad
2016/06/15 Python
轻松掌握python设计模式之访问者模式
2016/11/18 Python
Python实现邮件的批量发送的示例代码
2018/01/23 Python
Python 实现网页自动截图的示例讲解
2018/05/17 Python
python 将列表中的字符串连接成一个长路径的方法
2018/10/23 Python
Pandas DataFrame 取一行数据会得到Series的方法
2018/11/10 Python
浅谈pytorch torch.backends.cudnn设置作用
2020/02/20 Python
如何解决安装python3.6.1失败
2020/07/01 Python
python zip()函数的使用示例
2020/09/23 Python
在线购买廉价折扣书籍和小说:BookOutlet.com
2018/02/19 全球购物
光盘行动倡议书
2014/02/02 职场文书
工地安全生产标语
2014/06/06 职场文书
学校四风对照检查材料
2014/08/28 职场文书
庆元旦演讲稿
2014/09/15 职场文书
查摆问题整改措施
2014/10/24 职场文书
2014年远程教育工作总结
2014/12/09 职场文书
营销计划书
2015/01/17 职场文书
诚实守信主题班会
2015/08/13 职场文书
八年级历史教学反思
2016/02/19 职场文书
公司周年庆寄语
2019/06/21 职场文书
Python中使用Lambda函数的5种用法
2021/04/01 Python
手写Spirit防抖函数underscore和节流函数lodash
2022/03/22 Javascript
简单聊聊Golang中defer预计算参数
2022/03/25 Golang