php+mysql实现无限级分类 | 树型显示分类关系


Posted in PHP onNovember 19, 2006

无限级分类,主要是通过储存上级分类的id以及分类路径来实现。由于数据的结构简单,所以要将分类的关系由树状显示,我只能想到用递归的方式给于实现。 

无限级分类,主要是通过储存上级分类的id以及分类路径来实现。由于数据的结构简单,所以要将分类的关系由树状显示,我只能想到用递归的方式给于实现,下面是分类数据表结构和自己写的一个树状显示函数,有什么不妥的地方希望大家能指出。 
表结构:id字段为分类标识,name字段为分类名,father_id字段为所属父分类的id,path字段为分类路径(储存该分类祖先的集合),isdir判断是否是目录(1为是,0为否)。

显示函数:

//$count为分类等级  
sort_list($str,$fatherid,$count)  
{  
$rs = $this->sql->re_datas("select * from sort where father_id = fatherid");  
$num = $this->sql->sql_numrows();  
$i=0;  
$n = 1;  
while(isset($rs[$i]))  
{  
$name = "";  
for($n = 1 ; $n < $count ; $n++)  
{  
$name.="│ ";  
}  
if($i+1==$num)  
{  
$name.="└─".$rs[$i][name];  
}  
else  
{  
$name.="├─".$rs[$i][name];  
}  
if($rs[$i][isdir])  
{  
$str.="<span style='color:#CCCCCC'>".$name."</span>";  
}  
else  
{  
$str.=$name";  
}  
$temp = $count+1;  
$str = $this->sort_list($str,$rs[$i][id],$temp);  
$i++;  
}  
return $str;  
} 

其中$this->sql对象为sql操作类对象,re_datas()函数返回查到的数组,sql_numrows()函数返回查询到的数目

调用方法:$sort_list = sort_list($sort_list,0,1);

以上为个人思想,还望大家多多指点

PHP 相关文章推荐
一个高ai的分页函数和一个url函数
Oct 09 PHP
一个SQL管理员的web接口
Oct 09 PHP
PHP 变量定义和变量替换的方法
Jul 30 PHP
php select,radio和checkbox默认选择的实现方法
May 15 PHP
探讨:如何编写PHP扩展
Jun 13 PHP
浅析关于PHP位运算的简单权限设计
Jun 30 PHP
PHP自带函数给数字或字符串自动补齐位数
Jul 29 PHP
PHP中把有符号整型转换为无符号整型方法
May 27 PHP
PHP创建word文档的方法(平台无关)
Mar 29 PHP
PHP数组相加操作及与array_merge的区别浅析
Nov 26 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
Oct 03 PHP
Laravel 微信小程序后端搭建步骤详解
Nov 26 PHP
PHP生成静态页面详解
Nov 19 #PHP
smarty实例教程
Nov 19 #PHP
PHP编程中八种常见的文件操作方式
Nov 19 #PHP
PHP初学入门
Nov 19 #PHP
PHP5新特性: 更加面向对象化的PHP
Nov 18 #PHP
Windows中安装Apache2和PHP4权威指南
Nov 18 #PHP
Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
Nov 18 #PHP
You might like
请离开include_once和require_once
2013/07/18 PHP
php将图片保存为不同尺寸图片的图片类实例
2015/03/30 PHP
Discuz!X中SESSION机制实例详解
2015/09/23 PHP
PHP构造二叉树算法示例
2017/06/21 PHP
js 效率组装字符串 StringBuffer
2009/12/23 Javascript
javascript中的缓动效果实现程序
2012/12/29 Javascript
jQuery中选择器小问题(新人难免遇到)
2014/03/31 Javascript
node.js中的favicon.ico请求问题处理
2014/12/15 Javascript
微信小程序 require机制详解及实例代码
2016/12/14 Javascript
JS数组排序方法实例分析
2016/12/16 Javascript
js 性能优化之快速响应的用户界面
2017/02/15 Javascript
JS实现简易刻度时钟示例代码
2017/03/11 Javascript
ES6中class类用法实例浅析
2017/04/06 Javascript
vue2组件之select2调用的示例代码
2017/10/12 Javascript
JS异步函数队列功能实例分析
2017/11/28 Javascript
Vue常用的全选/反选的示例代码
2020/02/19 Javascript
基于JQuery实现页面定时弹出广告
2020/05/08 jQuery
微信小程序文章详情功能完整实例
2020/06/03 Javascript
Vue 实现创建全局组件,并且使用Vue.use() 载入方式
2020/08/11 Javascript
手把手教你实现 Promise的使用方法
2020/09/02 Javascript
[42:06]2019国际邀请赛全明星赛 8.23
2019/09/05 DOTA
Python的Django中django-userena组件的简单使用教程
2015/05/30 Python
Python3网络爬虫中的requests高级用法详解
2019/06/18 Python
Python Gitlab Api 使用方法
2019/08/28 Python
关于Numpy中的行向量和列向量详解
2019/11/30 Python
利用django model save方法对未更改的字段依然进行了保存
2020/03/28 Python
pycharm激活方法到2099年(激活流程)
2020/09/22 Python
python cookie反爬处理的实现
2020/11/01 Python
教你使用Sublime text3搭建Python开发环境及常用插件安装另分享Sublime text3最新激活注册码
2020/11/12 Python
Html5画布_动力节点Java学院整理
2017/07/13 HTML / CSS
英国最大的手表网站:The Watch Hut
2017/03/31 全球购物
MADE荷兰:提供原创设计师家具
2018/04/03 全球购物
武汉英思工程科技有限公司&ndash;ORACLE面试测试题目
2012/04/30 面试题
捐书活动总结
2014/05/04 职场文书
Python基础详解之邮件处理
2021/04/28 Python
Python闭包的定义和使用方法
2022/04/11 Python