php+mysql实现无限级分类 | 树型显示分类关系
无限级分类,主要是通过储存上级分类的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超牛逼无限极分类生成树方法
你还在用浪费时间又浪费内存的递归遍历无限极分类吗,看了该篇文章,我觉得你应该换换了. 这是我在OSChina上看到的一段非常精简的PHP无限极分类生成树方法,巧在引用,整理分享了. 复制代码 代码如下: function generateTree($items){ $tree = array(); foreach($items as $item){ if(isset($items[$item['pid']])){ $items[$item[
-
PHP无限极分类函数的实现方法详解
本文实例讲述了PHP无限极分类函数的实现方法.分享给大家供大家参考,具体如下: 在开发程序的时候,有时候,我们需要获取所有栏目(包括一级栏目.二级栏目.三级栏目等等),并按照父子关系形成树型结构.可以采取使用递归或者通过引用方式(php中引用类似C或者C++中的指针,只不过换一种说法而已). 通过引用方式实现无限极分类 思路: 1.即所有待处理的数据进行包装成下标为主键id(pk)的数组,便于有pid获取对应的父栏目. 2.对包装的数据进行循环,如果为根节点,则将其引用添加到tree中,否则,将
-
PHP实现无限极分类图文教程
一般来说实现无限极分类都是使用递归或者迭代的方式,小伙伴们看下本文的实现方式吧. 1,数据库设计: 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
-
php实现smarty模板无限极分类的方法
本文实例讲述了php实现smarty模板无限极分类的方法.分享给大家供大家参考,具体如下: <?php $conn = mysql_connect("localhost","admin","admin"); mysql_select_db("people_shop",$conn); mysql_query("SET NAMES 'UTF-8'"); $class_arr=array(); $sql =
-
php 无限极分类
复制代码 代码如下: <?php /*======================================================== 类名:catalog 功能:无限分级类 方法: 树形显示分类 catalog_show($id) //参数$id 递归调用 流程:找到父分类为0所有根分类-> 一直递归取得所有分类并显示 添加分类 catalog_add($uid,$name) //$uid 父id //$name 分类名 流程:依据$uid,在此id下添加一个新子id
-
php 无限级分类,超级简单的无限级分类,支持输出树状图
无平台限制 只需要告知id,parentid,name 即可 <?php error_reporting(E_ALL ^ E_NOTICE); class Tree { /** +------------------------------------------------ * 生成树型结构所需要的2维数组 +------------------------------------------------ * @author abc +-----------------------------
-
php无限极分类实现的两种解决方法
今天写了下无限极分类 下面就把代码贴上来了 写的不怎么样. method of classify one 复制代码 代码如下: <?php/* reader: 这是自己写的无限极分类实现方法 里面的编辑方法只是对分类名进行了编辑 没有进行移动操作 小弟能力有限忘大家多多包涵啊 第一种方法:CREATE TABLE `types` ( `type_id` int(11) NOT NULL AUTO_INCREMENT, `type_name` varchar(20) NOT NULL, `t
-
php无限极分类递归排序实现方法
本文实例讲述了php无限极分类递归排序实现方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: function order ($array,$pid=0){ $arr = array(); foreach($array as $v){ if($v['pid']==$pid){ $arr[] = $v; $arr = array_merge($arr,order($array,$v['
-
深入浅析PHP无限极分类的案例教程
平时开发中或多或少不可避免会遇到无限极分类的问题,因为效率.逻辑等问题也一直使这类问题比较尖锐.今天我们以yii2框架为基础,栏目无限极为例,对这个问题进行一个简单的处理. 首先我们有一张栏目数据表 tree 表结构如下图(原文有图) 看上去表结构很简单. 我们插入几条测试数据 INSERT INTO `tree` (`id`, `parent_id`, `name`) VALUES (1, 0, 'A'), (2, 0, 'B'), (3, 1, 'a'), (4, 3, 'aa'), (5,
-
php通过前序遍历树实现无需递归的无限极分类
本文实例讲述了php通过前序遍历树实现无需递归的无限极分类.分享给大家供大家参考.具体如下: 大家通常都是使用递归实现无限极分类都知道递归效率很低,下面介绍一种改进的前序遍历树算法,不适用递归实现无限极分类,在大数据量实现树状层级结构的时候效率更高. sql代码如下: CREATE TABLE IF NOT EXISTS `category` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(50) NOT NULL, `lft` i
-
PHP实现无限极分类生成分类树的方法
本文实例讲述了PHP实现无限极分类生成分类树的方法.分享给大家供大家参考,具体如下: 现在的分类数据库设计基本都是:每一个分类有一个id主键字段,一个pid指向父类的id,这样便可实现无限级分类,取出的数据就是如下的格式: $arr = array( array("id" => 1 , "pid" => 0 , 'cat' => '栏目一'), array("id" => 2 , "pid" =>
随机推荐
- 在Thinkphp中使用ajax实现无刷新分页的方法
- TImage组件实现保存图片到Stream
- 不用构造函数(Constructor)new关键字也能实现JavaScript的面向对象
- 浅析Java中JSONObject和JSONArray使用
- Spring中多配置文件及引用其他bean的方式
- 微信公众平台消息接口校验与消息接口响应实例
- js控制网页前进和后退的方法
- JavaScript中OnLoad几种使用方法
- 实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法
- PHP 显示客户端IP与服务器IP的代码
- php设计模式介绍之值对象模式第1/5页
- Session的工作机制详解和安全性问题(PHP实例讲解)
- 实例解析Python设计模式编程之桥接模式的运用
- C#使用Socket上传并保存图片的方法
- C语言指针学习经验总结浅谈
- java两种单例模式用法分析
- C#数组的常用操作方法小结
- 详解ES6语法之可迭代协议和迭代器协议
- 用Axios Element实现全局的请求loading的方法
- JavaScript中的回调函数实例讲解