php递归方法实现无限分类实例】的更多相关文章

数组:  代码如下 复制代码 $items = array( array('id' => 1, 'pid' => 0, 'name' => '一级11' ), array('id' => 11, 'pid' => 0, 'name' => 'www.111cn.net 一级12' ), array('id' => 2, 'pid' => 1, 'name' => '二级21' ), array('id' => 10, 'pid' => 11…
无限级分类原理简介 无限分类看似"高大上",实际上原理是非常简单的 .无限分类不仅仅需要代码的巧妙性,也要依托数据库设计的合理性.要满足无限级分类,数据库需要有两个必须的字段,id,pid.id用来标识自身,而 pid则是用来表明父级id.也就是说,每个分类记录不仅描述了自身,还描述了与其关心最为紧密的另一个id.看似复杂的事情被这样一个小技巧解决了. 闲话不多说,该展现本文的实例了. 作为一个狂热海贼迷,这篇的实例我就以<海贼王>人物组织做案例. 数据库准备: 建表one…
用递归方法实现多级分类,适合分级不太多的分类,如三到四级. 数据库结构: Model中(Category.php) /** * 获取全部分类信息 */ public function getAllcategory() { $sql = 'select * from '.$this->tableName().' order by id asc'; $category = ZDBTool::QueryAll($sql); return $category; } Controller中(Categor…
PHP实现无限分类 无限分类 递归 无限级分类是一种设计技巧,在开发中经常使用,例如:网站目录.部门结构.文章分类.笔者觉得它在对于设计表的层级结构上面发挥很大的作用,比如大家在一些平台上面,填写邀请人,它就是一种上下级的关系,上级会有多个下级,下级又会有自己的分支,大多数都是利用递归的思想去实现.话不多说,首先来温故一下递归的实现. 递归(程序调用自身的编程技巧): 1.$_GLOBALS[result] 2.static $result 3.参数引用& 举例:遍历1-10 $i=0;  fu…
laravel-nestedset:多级无限分类正确姿势   laravel-nestedset是一个关系型数据库遍历树的larvel4-5的插件包 目录: Nested Sets Model简介 安装要求 安装 开始使用 迁移文件 插入节点 获取节点 删除节点 一致性检查和修复 作用域 Nested Sets Model简介 Nested Set Model 是一种实现有序树的高明的方法,它快速且不需要递归查询,例如不管树有多少层,你可以仅使用一条查询来获取某个节点下的所有的后代,缺点是它的插…
//新闻类别管理 public function new_classify() { $arr = M('news_classify')->where("fid = 0")->select(); $html = '<ul class="easyui-tree"><li><span>新闻中心</span><ul>'; if (!empty($arr)) { $html .= $this->_t…
MySql无限分类数据结构--预排序遍历树算法 无限分类是我们开发中非常常见的应用,像论坛的的版块,CMS的类别,应用的地方特别多. 我们最常见最简单的方法就是在MySql里ID ,parentID,name.其优点是简单,结构简单:缺点是效率不高,因为每一次递归都要查询数据库,几百条数据时就不是很快了! 存储树是一种常见的问题,多种解决方案.主要有两种方法:邻接表的模型,并修改树前序遍历算法.  我们将探讨这两种方法的节能等级的数据.我会使用树从一个虚构的网上食品商店作为一个例子.这食品商店组…
TreeView递归绑定无限分类数据 实现一个动态绑定,无限级分类数据时,需要将数据绑定到TreeView控件,分类表的结构是这样的: 字段 类型 Id int ParentId int Name Nvarchar(64) 实现数据绑定: private void ControlsDataBind() { tvCategory.Nodes.Clear(); List<Models.Category> types = CommonNews.Helper.OperateContext.Curren…
首先创建无限分类的数据表,我这里采用的是id.name.pid这种类型(当然还有很多种无限分类的方式了,比如:id.name.pid.path.left.right左右节点的形式) CREATE TABLE `class` ( `id` int(10) unsigned NOT NULL auto_increment, `name` varchar(128) default NULL, `pid` int(11) default NULL, PRIMARY KEY (`id`) ) ENGINE…
无限分类是个老话题了,来看看PHP结合Mysql如何实现.第一种方法这种方法是很常见.很传统的一种,先看表结构表:categoryid int 主键,自增name varchar 分类名称pid int 父类id,默认0顶级分类的 pid 默认就是0了.当我们想取出某个分类的子分类树的时候,基本思路就是递归,当然,出于效率问题不建议每次递归都查询数据库,通常的做法是先讲所有分类取出来,保存到PHP数组里,再进行处理,最后还可以将结果缓存起来以提高下次请求的效率.先来构建一个原始数组,这个直接从数…