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 相关文章推荐
phpMyAdmin自动登录和取消自动登录的配置方法
May 12 PHP
PHP获取客户端真实IP地址的5种情况分析和实现代码
Jul 08 PHP
php实现将任意进制数转换成10进制的方法
Apr 17 PHP
PHP也能干大事之PHP中的编码解码详解
Apr 20 PHP
php session 写入数据库
Feb 13 PHP
PHP微信开发之文本自动回复
Jun 23 PHP
laravel学习教程之关联模型
Jul 30 PHP
PHP生成唯一ID之SnowFlake算法
Dec 17 PHP
PHP操作redis实现的分页列表,新增,删除功能封装类与用法示例
Aug 04 PHP
tp5 sum某个字段相加得到总数的例子
Oct 18 PHP
php 多继承的几种常见实现方法示例
Nov 18 PHP
PHP基于phpqrcode类生成二维码的方法示例详解
Aug 07 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日期时间函数的高级应用技巧
2009/05/16 PHP
destoon各类调用汇总
2014/06/20 PHP
PHP封装返回Ajax字符串和JSON数组的方法
2017/02/17 PHP
PHP多进程编程实例详解
2017/07/19 PHP
jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项
2020/04/04 Javascript
alert出数组中的随即值代码
2014/09/25 Javascript
JavaScript中的异常捕捉介绍
2014/12/31 Javascript
jQuery中noConflict()用法实例分析
2015/02/08 Javascript
javascript实现获取字符串hash值
2015/05/10 Javascript
如何使用jQuery技术开发ios风格的页面导航菜单
2015/07/29 Javascript
基于jquery实现轮播焦点图插件
2016/03/31 Javascript
jQuery简单实现上下,左右滑动的方法
2016/06/01 Javascript
jQuery表单验证之密码确认
2017/05/22 jQuery
Webpack中publicPath路径问题详解
2018/05/03 Javascript
JS实现普通轮播图特效
2020/01/01 Javascript
python strip()函数 介绍
2013/05/24 Python
Python中lambda的用法及其与def的区别解析
2014/07/28 Python
Python的装饰器模式与面向切面编程详解
2015/06/21 Python
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
2018/09/04 Python
python+mysql实现教务管理系统
2019/02/20 Python
python ddt数据驱动最简实例代码
2019/02/22 Python
Python接口测试结果集实现封装比较
2020/05/01 Python
怎么快速自学python
2020/06/22 Python
python 实现图片批量压缩的示例
2020/12/18 Python
浅析canvas元素的html尺寸和css尺寸对元素视觉的影响
2019/07/22 HTML / CSS
摩托车和ATV零件、配件和服装的首选在线零售商:MotoSport
2017/12/22 全球购物
新西兰最大的连锁超市:Countdown
2020/06/04 全球购物
应届电子商务毕业自荐书范文
2014/02/11 职场文书
暑期社会实践先进个人主要事迹
2014/05/22 职场文书
群众路线党员自我评议范文2014
2014/09/24 职场文书
合作合同协议书范本
2015/01/27 职场文书
电影雷锋观后感
2015/06/10 职场文书
JavaScript实现班级抽签小程序
2021/05/19 Javascript
MySQL笔记 —SQL运算符
2022/01/18 MySQL
Tomcat执行startup.bat出现闪退的原因及解决办法
2022/04/20 Servers
zabbix如何添加监控主机和自定义监控项
2022/08/14 Servers