PHP 数据库树的遍历方法
author:一佰互联 2019-05-01   click:184
代码如下:
复制代码 代码如下:
<?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);
}
}
}
?>