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表单验证的3个函数ISSET()、empty()、is_numeric()的使用方法
Aug 22 PHP
解析php防止form重复提交的方法
Jul 01 PHP
php使用ICQ网关发送手机短信
Oct 30 PHP
php中使用base HTTP验证的方法
Apr 20 PHP
Mac环境下php操作mysql数据库的方法分享
May 11 PHP
php技巧小结【推荐】
Jan 19 PHP
php+redis消息队列实现抢购功能
Feb 08 PHP
PHP实现根据数组某个键值大小进行排序的方法
Mar 13 PHP
PHP+Ajax实现的博客文章添加类别功能示例
Mar 29 PHP
thinkphp5引入公共部分header、footer的方法详解
Sep 14 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
Jul 22 PHP
laravel利用中间件防止未登录用户直接访问后台的方法
Sep 30 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
我的论坛源代码(十)
2006/10/09 PHP
php adodb操作mysql数据库
2009/03/19 PHP
php smarty 二级分类代码和模版循环例子
2011/06/16 PHP
php中随机显示图片的函数代码
2011/06/23 PHP
php中AES加密解密的例子小结
2014/02/18 PHP
php使用指定字符列表生成随机字符串的方法
2015/04/18 PHP
简单介绍win7下搭建apache+php+mysql开发环境
2015/08/06 PHP
php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)
2017/02/04 PHP
详解jQuery插件开发中的extend方法
2013/11/19 Javascript
深入理解JavaScript是如何实现继承的
2013/12/12 Javascript
js动态控制table的tr、td增加及删除的具体实现
2014/04/30 Javascript
jQuery中extend函数的实现原理详解
2015/02/03 Javascript
深入理解JavaScript中的块级作用域、私有变量与模块模式
2016/10/31 Javascript
微信小程序 页面之间传参实例详解
2017/01/13 Javascript
图片加载完成再执行事件的实例
2017/11/16 Javascript
React 路由懒加载的几种实现方案
2018/10/23 Javascript
原生js实现获取form表单数据代码实例
2019/03/27 Javascript
python基础教程之python消息摘要算法使用示例
2014/02/10 Python
Python数据类型详解(一)字符串
2016/05/08 Python
Python计算两个矩形重合面积代码实例
2019/09/16 Python
使用浏览器访问python写的服务器程序
2019/10/10 Python
python多进程并发demo实例解析
2019/12/13 Python
Python如何使用turtle库绘制图形
2020/02/26 Python
基于python图书馆管理系统设计实例详解
2020/08/05 Python
selenium与xpath之获取指定位置的元素的实现
2021/01/26 Python
英国户外装备和冒险服装零售商:alloutdoor
2018/01/30 全球购物
师范应届毕业生自荐信
2013/11/18 职场文书
大门门卫岗位职责
2013/11/30 职场文书
毕业生的自我鉴定该怎么写
2013/12/02 职场文书
《识字五》教学反思
2014/03/01 职场文书
2014年小学教师工作总结
2014/11/10 职场文书
劳动争议和解协议书范本
2014/11/20 职场文书
公司欠款证明
2015/06/24 职场文书
团结主题班会
2015/08/13 职场文书
一行代码python实现文件共享服务器
2021/04/22 Python
关于python3 opencv 图像二值化的问题(cv2.adaptiveThreshold函数)
2022/04/04 Python