PHP 数据库树的遍历方法 |
本文标签:PHP,数据库树,遍历 代码如下: 复制代码 代码如下: <?php session_start(); define (P_S, PATH_SEPARATOR); define (ROOT, "./"); set_include_path(ROOT .P_S .Zend .P_S .ROOT.get_include_path()); //加载ZEND 框架 require_once ROOT.Zend/Loader.php; require_once usercheck.php;//加载访问权限 Zend_Loader::loadFile(function.class.php, $dirs=class/, $once=false);//加载函数 Zend_Loader::loadClass(Zend_Db);//加载数据库类 Zend_Loader::loadClass(Zend_Config_Ini);//加载配置类 $config = new Zend_Config_Ini(config.php, general);//创建配置对象 $db = Zend_Db::factory($config->db->adapter,$config->db->config->toArray());//创建数据库对象 $select=$db->select(); $select->from(ResClass,array(lsh,name)); $select->where(steps = 1); $rs=$db->fetchAll($select); foreach ($rs as $res){ echo .$res[lsh].$res[name]."<br>"; Visit($res[lsh],1); } function Visit($nodeid,$stept){ global $db; $recordset = "SELECT lsh,name FROM ResClass WHERE parent=".$nodeid; //搜索nodeid的所有下层节点 $rs=$db->fetchAll($recordset); foreach($rs as $rss){ if(!$rss) return; //已经是叶子节点,直接返回 else{ for ($i=0;$i<4*$stept;$i++){ echo " "; } echo .$rss[lsh].$rss[name]."<br>"; Visit($rss[lsh],$stept+1); } } } ?> |