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实现无限分类实例详解
本文实例讲述了php+mysql实现无限分类的方法.分享给大家供大家参考.具体分析如下: 1.数据库通过设置父类ID来进行唯一索引,然后使用函数的递归调用实现无限分类: 2.数据库设计通过特定格式进行排列,然后使用mysql查询关键函数:concat,程序实现比较简单,首先我们假设有这样的一个三级分类,新闻→PHP新闻→PHP6.0出来了. 如果我们要查找"PHP6.0出来了"这条新闻,我们先点击新闻,然后再点击PHP新闻,就可以查出来了,也就是说我们可以通过祖父类一级一级地往下找,反
-
PHP遍历XML文档所有节点的方法
本文实例讲述了PHP遍历XML文档所有节点的方法.分享给大家供大家参考.具体实现方法如下: 1. contact.xml代码: <contact id="43956"> <personal> <name> <first>J</first> <middle>J</middle> <last>J</last> </name> <title>Manager<
-
利用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
-
PHP无限分类(树形类)
复制代码 代码如下: <?php//模拟PHP无限分类查询结果return array( array( 'id'=>1, 'pid'=>0, 'name'=>'主页' ), array( 'id'=>2, 'pid'=>0, 'name'=>'新闻' ), array( 'id'=>3, 'pid'=>0,
-
PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例
我们经常需要在关系型数据库中保存一些树状结构数据,比如分类.菜单.论坛帖子树状回复等.常用的方法有两种: 1. 领接表的方式: 2. 预排序遍历树方式: 假设树状结构如下图: 领接表方式 主要依赖于一个 parent 字段,用于指向上级节点,将相邻的上下级节点连接起来,id 为自动递增自动,parent_id 为上级节点的 id.一目了然,"Java"是"Language"的子节点. 我们要显示树,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无限分类(树形类)的深入分析
PHP无限分类,Google一下就能找到很多相关资料,思路比较拉风的,也是用得比较多的就是分类表至少有id,pid,name三个字段,id自增表分类,pid为父分类,name为分类名,这样就构成了一棵树,如下,算是我查询分类表得到的结果集. 复制代码 代码如下: <?php//模拟PHP无限分类查询结果return array( array( 'id'=>1, 'pid'=>0, 'name'=>'主页' ), array
-
解析thinkphp的左右值无限分类
以前一直使用父子无限分类,这种分类结构清晰,使用也简单.但若分类数量很大的话,在查询上性能不佳.比如在做导航菜单中,我要根据某一分类查询出整个分类树的话(祖辈).性能消耗是非常大的,要么做递归,要么做多次查询.故,对于分类的数据量很大的情况,我推荐使用左右值,以减少查询上的麻烦. 复制代码 代码如下: _id /** +---------------------------------------------------------- * 构造函数
随机推荐
- 《CSS3实战》笔记--渐变设计(二)
- ASP 辅助工具(hta版)
- Mongodb实现的关联表查询功能【population方法】
- 新老版本juqery获取radio对象的方法
- jQuery+ajax实现鼠标单击修改内容的思路
- java简单插入排序实例
- js判断文件格式及大小的简单实例(必看)
- 网页整体变灰白色(兼容各浏览器)实例
- PHP判断表达式中括号是否匹配的简单实例
- Python编程之变量赋值操作实例分析
- Android自定义View实现照片裁剪框与照片裁剪功能
- 分享JS数组求和与求最大值的方法
- 深入C++中API的问题详解
- C#的Process类调用第三方插件实现PDF文件转SWF文件
- 图文详解C语言位运算基础知识
- sql基本函数大全
- TRUNCATE 快速删除表中的所有数据
- 会自动逐行上升的文本框
- IE浏览器中图片onload事件无效的解决方法
- php 使用fopen函数创建、打开文件详解及实例代码