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操作Access类(PHP+ODBC+Access)
Jan 02 PHP
shopex主机报错误请求解决方案(No such file or directory)
Dec 27 PHP
PHP正则表达式之定界符和原子介绍
Oct 05 PHP
php利用单例模式实现日志处理类库
Feb 10 PHP
PHP中的output_buffering详细介绍
Sep 27 PHP
php支持中文字符串分割的函数
May 28 PHP
PHP7.0安装笔记整理
Aug 28 PHP
PHP使用http_build_query()构造URL字符串的方法
Apr 02 PHP
php使用pear_smtp发送邮件
Apr 15 PHP
thinkphp jquery实现图片上传和预览效果
Jul 22 PHP
php redis实现文章发布系统(用户投票系统)
Mar 04 PHP
ThinkPHP5框架实现简单的批量查询功能示例
Jun 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
WordPress的文章自动添加关键词及关键词的SEO优化
2016/03/01 PHP
总结PHP中DateTime的常用方法
2016/08/11 PHP
基于win2003虚拟机中apache服务器的访问
2017/08/01 PHP
php微信公众号开发之快递查询
2018/10/20 PHP
Laravel解决nesting level错误和隐藏index.php的问题
2019/10/12 PHP
jQuery(1.3.2) 7行代码搞定跟随屏幕滚动的层
2009/05/21 Javascript
理解Javascript_01_理解内存分配原理分析
2010/10/11 Javascript
Jquery ajaxsubmit上传图片实现代码
2010/11/04 Javascript
与jquery serializeArray()一起使用的函数,主要来方便提交表单
2011/01/31 Javascript
一个通过script自定义属性传递配置参数的方法
2014/09/15 Javascript
jQuery中:lt选择器用法实例
2014/12/29 Javascript
浅谈类似于(function(){}).call()的js语句
2015/03/30 Javascript
kindeditor编辑器点中图片滚动条往上顶的bug
2015/07/05 Javascript
全面解析Bootstrap布局组件应用
2016/02/22 Javascript
js阻止浏览器默认行为的简单实例
2016/05/15 Javascript
BootStrap中的table实现数据填充与分页应用小结
2016/05/26 Javascript
分享jQuery网页元素拖拽插件
2020/12/01 Javascript
jQuery实现表格元素动态创建功能
2017/01/09 Javascript
详解JavaScript中的坐标和距离
2019/05/27 Javascript
Angular8 Http拦截器简单使用教程
2019/08/20 Javascript
原生JS与CSS实现软件卸载对话框功能
2019/12/05 Javascript
各种Python库安装包下载地址与安装过程详细介绍(Windows版)
2016/11/02 Python
Python实现的视频播放器功能完整示例
2018/02/01 Python
Python实现快速计算词频功能示例
2018/06/25 Python
python多进程下实现日志记录按时间分割
2019/07/22 Python
ipad上运行python的方法步骤
2019/10/12 Python
python3 求约数的实例
2019/12/05 Python
利用matplotlib为图片上添加触发事件进行交互
2020/04/23 Python
Django中使用Celery的方法步骤
2020/12/07 Python
基于HTML5的WebGL经典3D虚拟机房漫游动画
2017/11/15 HTML / CSS
植村秀美国官网:Shu Uemura美国
2019/03/19 全球购物
2014年党员自我评议(5篇)
2014/09/12 职场文书
节水倡议书
2015/01/19 职场文书
《走遍天下书为侣》教学反思
2016/02/22 职场文书
golang 实用库gotable的具体使用
2021/07/01 Golang
SQL Server #{}可以防止SQL注入
2022/05/11 SQL Server