代码如下 | 复制代码 |
<?php /* 名称: 对分类操作的业务逻辑封装 * * 作者: 帅的像人渣 QQ: 1191391 E-mail: netcat2@21cn.com * * 完成日期: 2003-12-18 13:33 * * 说明: 本类中引用的其它类(DB、Table、Item)均未提供,所以本类只能做个参考,不能直接应用 * 不是本人小气不提供其它类,实在是因为那些都是一两年前写的类,很烂。怕大家看后对大 * 造成误导. 在此发表这个类,只希望大家能从中学到一些程序设计的方法。 * 授人以鱼不如授人以渔~ * * 特点: * 采用递归调用的方法,对分类数据只需一次数据库查询可生成树状结构。 无限递归层次(视机器堆栈而定) * * 数据库定义: * ID smallint unsigned primary #如果数据量很大可用int * ParentID smallint unsigned index #如果数据量很大可用int, 请索引此字段 * #如果为根分类,则ParentID = 0 * * RootID smallint unsigned index #如果数据量很大可用int, 请索引此字段 * #如果是根分类则RootID = 0, 否则RootID = 最上层的父分类ID * CategoryName varchar(n) #此大小自定 * 如需有其它字段定义附在后面 * 注意事项: define('DBTABLE_CATEGORY', 'xxx'); class Category_Logic var $_CurrentItem = NULL; //包含当前分类数据 TItem类的实例 var $CategoryID = 0; //当前分类ID,如果没有当前分类此项为 0 //--------------------------------------------------------------------------- $ArrayCount = 0; for($i = 0, $cnt = Count($Data); $i < $cnt; $i++) return $arr; //--------------------------------------------------------------------------- if($ProcessFunc) $str .= $ProcessFunc($Data[$i]); return $str; //--------------------------------------------------------------------------- $this->tblObj = new Table($Kernel->DBObj, DBTABLE_CATEGORY); if($CategoryID != -1) //--------------------------------------------------------------------------- $Item = new TItem($this->KernelRef->DBObj, DBTABLE_CATEGORY, '*', $CategoryID ,'ID'); $this->_SelfData = &$Item; $this->CategoryID = $CategoryID; //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- $List = $this->tblObj->MapResult($this->tblObj->Select()); return $this->GetNodeData($List, $RootID); //--------------------------------------------------------------------------- if($Data[$i]['Child']) $Str .= $this->GenerateTypeTreeList($Data[$i]['Child'], $ProcessFunc, $floor + 1); return $Str; //--------------------------------------------------------------------------- for($i = 0, $cnt = Count($Data); $i < $cnt; $i++) if($Data[$i]['Child']) $Str .= '<li>' . $this->GenerateTypeTreeView($Data[$i]['Child'], $ProcessFunc) . '</li>'; $Str .= '</ul>'; return $Str; //--------------------------------------------------------------------------- if($this->_SelfData->Get("RootID") == 0) $Current = $this->CategoryID; $this->tblObj->SetCondition('RootID = ' . $this->_SelfData->Get('RootID') . " or ID = " . $this->_SelfData->Get('RootID')); $Data = $this->tblObj->MapResult($this->tblObj->Select()); return $this->_CurrentLevel($Data, $Current, $ProcessFunc); //--------------------------------------------------------------------------- return $this->tblObj->Insert( //--------------------------------------------------------------------------- $this->tblObj->SetFields('*'); return $this->tblObj->Delete(); //--------------------------------------------------------------------------- $prev = $this->tblObj->MapOneRow($this->tblObj->Select()); $this->tblObj->SetFields( return $this->tblObj->Update($arr); //--------------------------------------------------------------------------- return $this->tblObj->MapOneRow($this->tblObj->Select()); |
一个无限分类的处理类程序代码
时间: 2024-09-19 09:55:20
一个无限分类的处理类程序代码的相关文章
一个无限分类的处理类
PHP代码:-------------------------------------------------------------------------------- <?php /* 名称: 对分类操作的业务逻辑封装 * * 作者: 帅的像人渣 QQ: 1191391 E-mail: netcat2@21cn.com * * 完成日期: 2003-12-18 13:33 * * 说明: 本类中引用的其它类(DB.Table.Item)均未提供,所以本类只能做个参考,不能直接应用 * 不是
密码学-求一个简单ElGamal数字签名,控制台程序代码就行
问题描述 求一个简单ElGamal数字签名,控制台程序代码就行 求一个简单ElGamal数字签名,C或C++控制台程序代码就行, rsa数字签名也有的更好,谢谢大神,让我应付下密码学的算法设计. 解决方案 http://www.pudn.com/downloads113/sourcecode/crypt/detail472998.htmlhttp://www.codesoso.net/Record/122168_115197_1.htmlhttp://download.csdn.net/down
php用数组返回无限分类的列表数据的代码_php技巧
复制代码 代码如下: /*------------------ */ //– 获取无限分类的列表数据 /*------------------ */ function get_sort ($parent_id=0,$n=-1) { global $db; static $sort_list = array (); $sql = "SELECT * FROM ".$db->table('article_sort')." WHERE `parent_id` = '{$par
thinkPHP 分页写成自己分页类程序代码
我们行来看我自己做的一个实例 代码如下 复制代码 CREATE TABLE IF NOT EXISTS `think_form` ( `id` smallint(4) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, `content` varchar(255) NOT NULL, `create_time` int(11) unsigned NOT NULL, PRIMARY KEY (`id
php 无限分类的树类代码_php技巧
复制代码 代码如下: <?php /** by lenush; */ class Tree { var $data = array(); var $child = array(-1=>array()); var $layer = array(-1=>-1); var $parent = array(); function Tree ($value) { $this->setNode(0, -1, $value); } // end func function setNode ($i
jQueryUI写一个调整分类的拖放效果实现代码_jquery
所以还是自己动手丰衣足食,还是坚持简单就是美的代码风格. 试试在iframe里嵌入一个测试页面,你可以使用鼠标拖动项目,调整分类: 当然,这并不是我要的最终效果,只能说它已经实现了一个我想要的拖放效果.我要求的在这个基础上,还要增加自动排序,位置变更后恢复之前元素bind的jQuery事件等. 代码 代码如下,如要复制,请先查看纯文本版本! 复制代码 代码如下: <!DOCTYPE html> <html> <head> <title>Drag &
Php Aes加密类程序代码分享
AES加密算法 – 算法原理 AES 算法基于排列和置换运算.排列是对数据重新进行安排,置换是将一个数据单元替换为另一个.AES 使用几种不同的方法来执行排列和置换运算. AES 是一个迭代的.对称密钥分组的密码,它可以使用128.192 和 256 位密钥,并且用 128 位(16字节)分组加密和解密数据.与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据.通过分组密码返回的加密数据的位数与输入数据相同.迭代加密使用一个循环结构,在该循环中重复置换和替换输入数据. 代码如
一个简单的php+Ajax购物车程序代码(1/2)
购物车类:shop_cart.php 购物车的操作:cart_action.php 首页:index.html Ajax操作用到了jquery,还有一个jquery插件thickbox 不多说了你可以先看看效果示例 shop_cart.php当然是购物车的核心,但是这个类很简单,因为他又引进了cart_action.php用于对外操作.所以这个类显得相当精简. 购物车类shop_cart.php 代码如下 复制代码 cart_name = $name; $this->items = $_SES
二款php数据库备份类程序代码
下面看下使用方法: 代码如下 复制代码 <?php error_reporting(0);//消灭万恶的php报警提示 //设定邮箱 $options = array('email' => array('email1', 'email2'), 'folder' => './backup/', 'mysql' => array('localhost', 'user', 'password', 'db')); $b = new Backup($options); // 提