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执行速度全攻略(下)
Oct 09 PHP
一些使用频率比较高的php函数
Oct 03 PHP
PHP 循环列出目录内容的函数代码
May 26 PHP
浅谈discuz密码加密的方式
May 22 PHP
PHP实现文件下载断点续传详解
Oct 15 PHP
php获取本周星期一具体日期的方法
Apr 20 PHP
php post大量数据时发现数据丢失问题解决方法
Jun 20 PHP
php在数据库抽象层简单使用PDO的方法
Nov 03 PHP
php强大的时间转换函数strtotime
Feb 18 PHP
PHP编程实现计算抽奖概率算法完整实例
Aug 09 PHP
php插入mysql数据返回id的方法
May 31 PHP
Laravel框架实现利用监听器进行sql语句记录功能
Jun 06 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为SHOPEX增加日志功能代码
2010/07/02 PHP
php 中英文语言转换类代码
2011/08/11 PHP
RR vs IO BO3 第一场2.13
2021/03/10 DOTA
Jquery uploadify图片上传插件无法上传的解决方法
2013/12/16 Javascript
js 数组去重的四种实用方法
2014/09/09 Javascript
javascript深拷贝(deepClone)详解
2016/08/24 Javascript
AngularJS指令用法详解
2016/11/02 Javascript
Bootstrap栅格系统的使用和理解2
2016/12/14 Javascript
BootStrap实现鼠标悬停下拉列表功能
2017/02/17 Javascript
基于Vue自定义指令实现按钮级权限控制思路详解
2018/05/23 Javascript
js实现json数组分组合并操作示例
2019/02/12 Javascript
Node.js如何优雅的封装一个实用函数的npm包的方法
2019/04/29 Javascript
layui 富文本赋值,取值,取纯文本值的实例
2019/09/18 Javascript
[01:15:45]DOTA2上海特级锦标赛B组小组赛#1 Alliance VS Spirit第一局
2016/02/26 DOTA
使用Python的Twisted框架实现一个简单的服务器
2015/04/16 Python
在Python中使用HTML模版的教程
2015/04/29 Python
再谈Python中的字符串与字符编码(推荐)
2016/12/14 Python
Python实现学校管理系统
2018/01/11 Python
tensorflow训练中出现nan问题的解决
2018/02/10 Python
python3使用SMTP发送HTML格式邮件
2018/06/19 Python
pandas将多个dataframe以多个sheet的形式保存到一个excel文件中
2019/10/10 Python
python基于celery实现异步任务周期任务定时任务
2019/12/30 Python
解决pymysql cursor.fetchall() 获取不到数据的问题
2020/05/15 Python
Django 解决distinct无法去除重复数据的问题
2020/05/20 Python
Python基于time模块表示时间常用方法
2020/06/18 Python
20行Python代码实现一款永久免费PDF编辑工具的实现
2020/08/27 Python
css3圆角样式分享自定义按钮样式
2013/12/27 HTML / CSS
美国标志性加大尺码时装品牌:Ashley Stewart
2016/12/15 全球购物
关键字throw与throws的用法差异
2016/11/22 面试题
网络教育自我鉴定
2014/02/04 职场文书
大学军训感言200字
2014/02/26 职场文书
美术教师岗位职责
2014/03/18 职场文书
学校宣传标语
2014/06/18 职场文书
离职报告范文
2014/11/04 职场文书
react中的DOM操作实现
2021/06/30 Javascript
Redis分布式锁Redlock的实现
2021/08/07 Redis