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递归实现无限分类 格式化数组的详解
我们要做一个商品的无限分类首先数据库字段为:id ----------商品主键idfid ---------- 商品父idname ---------- 商品名最后输出的数组格式为 复制代码 代码如下: <PRE class=php name="code"><PRE class=php name="code">array( 0=>array( 'id'=>1, 'fid'=>0, 'name'=>'法国货' '
-
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+mysql实现无限分类实例详解
本文实例讲述了php+mysql实现无限分类的方法.分享给大家供大家参考.具体分析如下: 1.数据库通过设置父类ID来进行唯一索引,然后使用函数的递归调用实现无限分类: 2.数据库设计通过特定格式进行排列,然后使用mysql查询关键函数:concat,程序实现比较简单,首先我们假设有这样的一个三级分类,新闻→PHP新闻→PHP6.0出来了. 如果我们要查找"PHP6.0出来了"这条新闻,我们先点击新闻,然后再点击PHP新闻,就可以查出来了,也就是说我们可以通过祖父类一级一级地往下找,反
-
PHP无限分类(树形类)的深入分析
PHP无限分类,Google一下就能找到很多相关资料,思路比较拉风的,也是用得比较多的就是分类表至少有id,pid,name三个字段,id自增表分类,pid为父分类,name为分类名,这样就构成了一棵树,如下,算是我查询分类表得到的结果集. 复制代码 代码如下: <?php//模拟PHP无限分类查询结果return array( array( 'id'=>1, 'pid'=>0, 'name'=>'主页' ), array
-
PHP遍历XML文档所有节点的方法
本文实例讲述了PHP遍历XML文档所有节点的方法.分享给大家供大家参考.具体实现方法如下: 1. contact.xml代码: <contact id="43956"> <personal> <name> <first>J</first> <middle>J</middle> <last>J</last> </name> <title>Manager<
-
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往XML中添加节点的方法
本文实例讲述了PHP往XML中添加节点的方法.分享给大家供大家参考.具体方法如下: 1. contacts.xml代码 复制代码 代码如下: <contact id="43956"> <personal> <name> <first>J</first> <middle>J</middle>
-
PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例
我们经常需要在关系型数据库中保存一些树状结构数据,比如分类.菜单.论坛帖子树状回复等.常用的方法有两种: 1. 领接表的方式: 2. 预排序遍历树方式: 假设树状结构如下图: 领接表方式 主要依赖于一个 parent 字段,用于指向上级节点,将相邻的上下级节点连接起来,id 为自动递增自动,parent_id 为上级节点的 id.一目了然,"Java"是"Language"的子节点. 我们要显示树,PHP 代码也可以很直观,代码如下: 复制代码 代码如下: <
-
解析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获取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
随机推荐
- ListView 百分比进度条(delphi版)
- jquery Form轻松实现文件上传
- 基于Tomcat 数据源的原理、配置、使用介绍
- Asp.net FCKEditor 2.6.3 上传文件没有权限解决方法
- 一些技巧性实用js代码小结
- 送给搞采集的兄弟一个sql语句
- node.js中的fs.writeFile方法使用说明
- linux awk高级应用实例
- 为什么有的留言簿不需要数据库?
- css实现气泡框效果(实例加图解)
- 已证实Au_.exe是NSIS安装包的一个组成部分与说明
- openSUSE下的Ruby安装openssl出错解决方法
- 用javascript实现页内搜索的脚本代码
- jQuery通过扩展实现抖动效果的方法
- 使用jquery.form.js实现图片上传的方法
- Ubuntu下Mysql 常用指令及中文乱码问题
- Java创建类模式_动力节点Java学院整理
- 跨站脚本执行漏洞详解与防护
- C语言经典例程100例(经典c程序100例)
- .NETCore Docker实现容器化与私有镜像仓库管理
