PHP 循环删除无限分类子节点的实现代码
<?php
private function _deleteSubNode($ids){
$subNodes = array();
$mod = D('Node');
foreach (explode ( ',', $ids ) as $k){
$res = $this->_getSubNode($k,$subNodes[$k],$mod); //获取子节点
if(!empty($res[0])){
foreach($res as $k => $nid){
$mod->where('id = '.$nid)->delete(); //删除子节点
}
}
}
return ;
}
private function _getSubNode($id, &$arr,$mod){
$condition = array ('pid' => array ('eq', $id ));
$ret = $mod->where($condition)->getField('id');
if(!empty($ret[0])){
foreach ($ret as $k => $node){
$arr[] = $node['id'];
$this->_getSubNode($node['id'], $arr, $mod);
}
}
return $arr;
}
?>
相关推荐
-
PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例
我们经常需要在关系型数据库中保存一些树状结构数据,比如分类.菜单.论坛帖子树状回复等.常用的方法有两种: 1. 领接表的方式: 2. 预排序遍历树方式: 假设树状结构如下图: 领接表方式 主要依赖于一个 parent 字段,用于指向上级节点,将相邻的上下级节点连接起来,id 为自动递增自动,parent_id 为上级节点的 id.一目了然,"Java"是"Language"的子节点. 我们要显示树,PHP 代码也可以很直观,代码如下: 复制代码 代码如下: <
-
利用php递归实现无限分类 格式化数组的详解
我们要做一个商品的无限分类首先数据库字段为:id ----------商品主键idfid ---------- 商品父idname ---------- 商品名最后输出的数组格式为 复制代码 代码如下: <PRE class=php name="code"><PRE class=php name="code">array( 0=>array( 'id'=>1, 'fid'=>0, 'name'=>'法国货' '
-
thinkphp实现无限分类(使用递归)
本文实例为大家分享了thinkphp实现无限分类的详细代码,希望对大家学习无限分类有所启发. 数据库:test 数据表:(tp_category): Common/conf/config.php 'DB_CONFIG2' => array( 'db_type' => 'mysql', 'db_user' => 'root', 'db_pwd' => '', 'db_host' => 'localhost', 'db_port' => '3306', 'db_name'
-
php获取json数据所有的节点路径
之前我们讲解过使用javascript获取json数据节点路径的问题,今天我们更进一步,讲解下php获取json数据所有的节点路径 <?php function iterTree($data) { $retData = array(); $data = json_decode($data, true); if (!is_array($data) && empty($data)) { echo 'error !' ."n"; } else { $queue = ar
-
解析thinkphp的左右值无限分类
以前一直使用父子无限分类,这种分类结构清晰,使用也简单.但若分类数量很大的话,在查询上性能不佳.比如在做导航菜单中,我要根据某一分类查询出整个分类树的话(祖辈).性能消耗是非常大的,要么做递归,要么做多次查询.故,对于分类的数据量很大的情况,我推荐使用左右值,以减少查询上的麻烦. 复制代码 代码如下: _id /** +---------------------------------------------------------- * 构造函数
-
PHP无限分类(树形类)
复制代码 代码如下: <?php//模拟PHP无限分类查询结果return array( array( 'id'=>1, 'pid'=>0, 'name'=>'主页' ), array( 'id'=>2, 'pid'=>0, 'name'=>'新闻' ), array( 'id'=>3, 'pid'=>0,
-
PHP无限分类(树形类)的深入分析
PHP无限分类,Google一下就能找到很多相关资料,思路比较拉风的,也是用得比较多的就是分类表至少有id,pid,name三个字段,id自增表分类,pid为父分类,name为分类名,这样就构成了一棵树,如下,算是我查询分类表得到的结果集. 复制代码 代码如下: <?php//模拟PHP无限分类查询结果return array( array( 'id'=>1, 'pid'=>0, 'name'=>'主页' ), array
-
php+mysql实现无限分类实例详解
本文实例讲述了php+mysql实现无限分类的方法.分享给大家供大家参考.具体分析如下: 1.数据库通过设置父类ID来进行唯一索引,然后使用函数的递归调用实现无限分类: 2.数据库设计通过特定格式进行排列,然后使用mysql查询关键函数:concat,程序实现比较简单,首先我们假设有这样的一个三级分类,新闻→PHP新闻→PHP6.0出来了. 如果我们要查找"PHP6.0出来了"这条新闻,我们先点击新闻,然后再点击PHP新闻,就可以查出来了,也就是说我们可以通过祖父类一级一级地往下找,反
-
PHP带节点操作的无限分类实现方法详解
本文实例讲述了PHP带节点操作的无限分类实现方法.分享给大家供大家参考,具体如下: 包含(移动多个节点:移动单个节点:删除多个节点:删除单个节点:新增节点),另附数据库表结构 一.db sql语句 //db used for php无限分类 create table tree( id int(10) not null primary key auto_increment, name varchar(255) not null, lft int(10) not null default 0, rg
-
PHP往XML中添加节点的方法
本文实例讲述了PHP往XML中添加节点的方法.分享给大家供大家参考.具体方法如下: 1. contacts.xml代码 复制代码 代码如下: <contact id="43956"> <personal> <name> <first>J</first> <middle>J</middle>
-
PHP遍历XML文档所有节点的方法
本文实例讲述了PHP遍历XML文档所有节点的方法.分享给大家供大家参考.具体实现方法如下: 1. contact.xml代码: <contact id="43956"> <personal> <name> <first>J</first> <middle>J</middle> <last>J</last> </name> <title>Manager<
随机推荐
- 深入理解JavaScript的React框架的原理
- HTML5 Shiv完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法
- vbs的sort排序
- Hadoop2.X/YARN环境搭建--CentOS7.0 JDK配置
- Python中使用django form表单验证的方法
- PHP提示Cannot modify header information - headers already sent by解决方法
- PHP+FFMPEG实现将视频自动转码成H264标准Mp4文件
- Ajax 核心框架函数及例子
- Jquery ajax加载等待执行结束再继续执行下面代码操作
- C#窗体编程(windows forms)禁止窗口最大化的方法
- javascript asp教程第二课--转义字符
- 简介JavaScript中toTimeString()方法的使用
- 金山反病毒20041217_日报
- C#程序连接数据库及读取数据库中字段的简单方法总结
- php使用文本统计访问量的方法
- Android Adapter的几个常用方法
- python定时利用QQ邮件发送天气预报的实例
- Android引用arr包的两种方法
- django之使用celery-把耗时程序放到celery里面执行的方法
- vue移动端实现红包雨效果