CI框架无限级分类+递归的实现代码
CI是什么?
CodeIgniter是一个轻量级但功能强大的PHP框架,基于MVC设计模式,提供了一套丰富的类库,简单易学,高效实用。
下面看下CI框架无限级分类+递归的实现代码,具体代码如下所示:
//无级分类+递归 public function digui(){ $crr = $this->db->get('category')->result_array(); $list['type'] = $this->nolimit($crr,0,0); $this->load->view('list1',$list); } public function nolimit($crr,$p_id,$level){ static $arr = array(); foreach($crr as $v){ if($v['parent_id']==$p_id){ $v['level'] = $level; $arr[] = $v; $this->nolimit($crr,$v['cat_id'],$level+1); } } return $arr; } <td><?PHP echo str_repeat(' ',$val['level'])?><?php echo $val['cat_name']?></td> //获取1级、2级、3级分类 public function sel_child($p_id){ $arr = $this->sel_son($p_id); foreach($arr as $k=>$v){ $tmp = $this->sel_son($v['cat_id']); foreach($tmp as $kk=>$vv){ $tmp2 = $this->sel_son($vv['cat_id']); $tmp[$kk]['childs'] = $tmp2; } $arr[$k]['child'] = $tmp; } return $arr; } //通过ID获取所有的下级分类 public function sel_son($id){ $this->db->where("parent_id=$id"); return $this->db->get(self::$cate)->result_array(); } //渲染展示主页模板 public function lists(){ $p_id = 0; $brr['type'] = $this->Home_model->sel_child($p_id); $brr['list'] = $this->db->get('goods')->result_array(); $this->load->view('Home/list.html',$brr); } <?php foreach($type as $v){?> <li id="cat_1" class=""> <h3><a href=""><?php echo $v['cat_name']?></a></h3> <?php foreach($v['child'] as $vv){?> <dl class="clearfix"> <dt><a href=""><?php echo $vv['cat_name']?></a></dt> <?php foreach($vv['childs'] as $vvv){?> <a href=""><?php echo $vvv['cat_name']?></a> <?php }?> </dl> <?php }?> </li> <?php }?>
以上所述是小编给大家介绍的CI框架无限级分类+递归的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
相关推荐
-
CI框架(ajax分页,全选,反选,不选,批量删除)完整代码详解
CodeIgniter 是一个小巧但功能强大的 PHP 框架,作为一个简单而"优雅"的工具包,它可以为开发者们建立功能完善的 Web 应用程序.是比较主流的一个PHP框架. 下面给大家介绍CI框架(ajax分页,全选,反选,不选,批量删除)完整代码,具体代码如下所示: //ajax分页+搜索(视图层) function ajax_page(page){ var sou = $('#sou').val(); $.ajax({ type: "POST", dataTyp
-
CI框架简单邮件发送类实例
本文实例讲述了CI框架简单邮件发送类.分享给大家供大家参考,具体如下: ci框架绝对是php初学中想要的东西,它能极大的缩短你的代码量! 下面看看我的发送邮件的简单演示: function email() { $this->load->library('email'); $config['protocol'] = 'smtp'; $config['smtp_host'] = 'smtp.163.com'; $config['smtp_user'] = 'jb51@163.com';//这里写上
-
php递归方法实现无限分类实例代码
数组: 复制代码 代码如下: $items = array( array('id' => 1, 'pid' => 0, 'name' => '一级11' ), array('id' => 11, 'pid' => 0, 'name' => 'www.jb51.net 一级12' ), array('id' => 2, 'pid' => 1, 'name' => '二级21' ), array('id' => 10, 'pid' => 11,
-
CI框架中$this->load->library()用法分析
本文分析了CI框架中$this->load->library()的用法.分享给大家供大家参考,具体如下: 我第一次加载失败,原来是文件名和类名不同的原因,先总结关于CI加载你自己的类文件注意事项: 1.第三方加载文件应放在application/libraries文件下 2.文件名和类名应该相同,并且首字母大写,比如说文件名Excel.php 类名应该为Excel 3.通过:$this->load->library('类');方式在你需要的地方加载 4.也可以在applicati
-
php递归实现无限分类生成下拉列表的函数
复制代码 代码如下: /*------------------ */ //– 递归实现无限分类生成下拉列表函数 //– $tpl->assign('sort_list',createSortOptions ()); //– $tpl->assign('sort_list',createSortOptions ($sort_id)); /*------------------ */ function createSortOptions ($selected=0,$parent_id=0,$n=-
-
CI框架数据库查询之join用法分析
本文实例讲述了CI框架数据库查询之join用法.分享给大家供大家参考,具体如下: 用 A表中的每个ID 去查询这个 ID 在 people 表中的信息.语句如下: $this->db->from('A'); $this->db->join('B', 'sites.id = B.id'); 用 A表中的每个ID 去查询这个 ID 在 B表中的信息. 注意SQL的约定,如果一个列名在二张表中是重复的,你需要在列名前加上表名和一个"."号.因此sites.id在位置桌
-
利用php递归实现无限分类 格式化数组的详解
我们要做一个商品的无限分类首先数据库字段为:id ----------商品主键idfid ---------- 商品父idname ---------- 商品名最后输出的数组格式为 复制代码 代码如下: <PRE class=php name="code"><PRE class=php name="code">array( 0=>array( 'id'=>1, 'fid'=>0, 'name'=>'法国货' '
-
PHP 无限分类三种方式 非函数的递归调用!
php无限分类大致有三种方式, 1.数据库通过设置父类ID来进行唯一索引,然后使用函数的递归调用实现无限分类: 2.数据库设计通过特定格式进行排列,然后使用mysql查询关键函数:concat.程序实现比较简单: 3.第三种不是太了解, 好像要使用到算法和数据结构进行排列. 今天我主要分享下第二种方式,一开始也是找了很多资料,确实比较难理解.不过最终还是给搞明白了,因此记下随笔,希望通过这篇文章能够帮助到大家. 一.数据库设计: 复制代码 代码如下: -- -- Table structure
-
CI框架无限级分类+递归的实现代码
CI是什么? CodeIgniter是一个轻量级但功能强大的PHP框架,基于MVC设计模式,提供了一套丰富的类库,简单易学,高效实用. 下面看下CI框架无限级分类+递归的实现代码,具体代码如下所示: //无级分类+递归 public function digui(){ $crr = $this->db->get('category')->result_array(); $list['type'] = $this->nolimit($crr,0,0); $this->load-
-
php+mysql不用递归实现的无限级分类实例(非递归)
要实现无限级分类,递归一般是第一个也是最容易想到的,但是递归一般被认为占用资源的方法,所以很多系统是不考虑使用递归的 本文还是通过数据库的设计,用一句sql语句实现 数据库字段大概如下: 复制代码 代码如下: id 编号 fid 父分类编号 class_name 分类名 path 分类路径,以 id 为节点,组成类似 ,1,2,3,4, 这样的字符串 可以假设有如下的数据: 复制代码 代码如下: id fid class_name path 1 0 分类1 , 1, 2
-
C#递归方法实现无限级分类显示效果实例
本文实例讲述了C#递归方法实现无限级分类显示效果.分享给大家供大家参考,具体如下: 运行效果如下图所示: 具体代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="RoleDemo20150305.aspx.cs" Inherits="RoleDemo20150305" %> <!DOCTYPE html PUBLIC "-//W
-
CI框架的安全性分析
本文分析了CI框架的安全性.分享给大家供大家参考,具体如下: 用过ci框架的人都知道,ci框架能大大缩短你的代码.其实,ci框架更能提高你网站的安全性. 防止对数据库的攻击 数据输入可能引发许多问题.因为 HTML 和数据库的限制,数据中总包含特定的符号-举例来说,省略符号和引号-可能导致你的数据库遭到攻击,最终得到你无法预料的结果. 解决方案是在把这些数据存入数据库前对这些数据进行相关处理.这样做会浪费一些系统时间,增加一些额外编码. CI 的表单辅助函数会自动地完成这些工作.因此,当你编写一
-
laravel 框架实现无限级分类的方法示例
本文实例讲述了laravel 框架实现无限级分类的方法.分享给大家供大家参考,具体如下: 模型中的代码 namespace App\models\wxj; use Illuminate\Support\Facades\DB; use Session; class Wxjlx { public function r(){ //输出数据库的所有内容 $sql=DB::table('wxjlx')->get(); //调用fl方法 $result=self::fl($sql,$pid=0); retu
-
2款PHP无限级分类实例代码
本文章总结了两款PHP无限级分类实现程序代码,有需要学习的朋友可参考一下. 主要思路:首先看第三行和第四行,父类ID(PARENTID)的值是1,表示属于id=1这个类的子类,而,一,二两行因为是一级分类,没有上级分类,所以父类ID(PARENTID)的值是0,表示初级分类,依次类推便实现了无限级分类.最终的效果是: ├一级分类A ├─┴二级分类A ├─┴二级分类B ├一级分类B 然后就是程序,这里以PHP作为描述语言,可以很方便的改成其他语言,因为原理相似,就是一个递归而已. <?php $d
-
php实现无限级分类查询(递归、非递归)
做PHP这么长时间,发现后台管理系统不可少的一个应用模块就是对栏目的分类,一般情况下栏目都要做成是无限级的,也就是说每个栏目理论上都可以添加子栏目.在我看来这种情况处理起来整体上说也不是很复杂,唯一一个相对来说较难的点是无限级栏目的查询. 下面就这种情况我来向大家做一个简单的介绍,对于这种无限级栏目的查询一般情况下有两种方式,其中一种就是使用栈的机制,另一种是使用递归函数的方式(当然递归函数实现机制也是借助于栈来实现的).就这两种方式下面我们分别介绍. 递归函数实现方式 上面提到,递归函数的也是
-
PHP不使用递归的无限级分类简单实例
不用递归实现无限级分类,简单测试了下性能比递归稍好一点点点,但写得太复杂了,还是递归简单方便点 代码: <?php $list = array( array('id'=>1, 'pid'=>0, 'deep'=>0, 'name'=>'test1'), array('id'=>2, 'pid'=>1, 'deep'=>1, 'name'=>'test2'), array('id'=>3, 'pid'=>0, 'deep'=>0, 'n
-
php实现无限级分类实现代码(递归方法)
开始以为这样的功能似乎很难,之前也做过一个百科的东西,其中也涉及到了分类的功能,不过不是无限级的分类,而是简单的实现了固定的三级分类,当时是自己设计的,想在想起来实现方法太土了,其实三级分类也只是无限级分类的一种特殊情况而已嘛.经过一段时间考虑,已经有了一些眉目,到网上一查,原来这样的东西铺天盖地,呵呵.其实无限级下拉列表功能是很简单的,无非就是用一个递归算法就好啦. 首先要设计数据库,需要建一个表,里面存储分类信息,至少需要3个字段,第一个是主键(ID),第二个是父级分类ID(parentid
-
PHP实现递归无限级分类
在一些复杂的系统中,要求对信息栏目进行无限级的分类,以增强系统的灵活性.那么PHP是如何实现无限级分类的呢?我们在本文中使用递归算法并结合mysql数据表实现无限级分类. 递归,简单的说就是一段程序代码的重复调用,当把代码写到一个自定义函数中,将参数等变量保存,函数中重复调用函数,直到达到某个条件才跳出,返回相应的数据. Mysql 首先我们准备一张数据表class,记录商品分类信息.表中有三个字段,id:分类编号,主键自增长:title:分类名称:pid:所属上级分类id. class表结构:
随机推荐
- DDoS攻击的趋势与相关防御策略
- Laravel接收前端ajax传来的数据的实例代码
- AngularJS基础 ng-srcset 指令简单示例
- 微信小程序开发之IOS和Android兼容的问题
- 详解Java实现缓存(LRU,FIFO)
- android实现缓存图片等数据
- Laravel中的Auth模块详解
- linux下 C语言对 php 扩展
- php中0,null,empty,空,false,字符串关系的详细介绍
- Java操作文本文件的方法
- C++中指向对象的常指针与指向常对象的指针详解
- 仿jQuery的siblings效果的js代码
- 用SQL语句实现替换字符串
- jquery api参考 visualjquery 中国线路 速度快
- Boostrap模态窗口的学习小结
- 微信内置浏览器私有接口WeixinJSBridge介绍
- 改变vue请求过来的数据中的某一项值的方法(详解)
- mysql 8.0.13手动安装教程
- Python2与Python3的区别实例总结
- Java实现的朴素贝叶斯算法示例