一般我们定义网站的时候都会分为几个目录,目录下再套小目录,也就是说数据结构如下:
id---------------------------------目录编号
name---------------------------目录名称
parent--------------------------父辈目录编号
comment----------------------注解
id是表的唯一编号了,prarent 就是父目录的编号,按照这样建立表,整个表就成了一个树形状的数据结构了。
接下来我们定义两个函数来取得路径信息
// 取得目录树的路径
// 注意: 这个函数是用来调用递归函数get_Parents,
// 它初始化数据库对象的TRAIL成员变量,将它清空并设置为数组来 保持路径信息
function get_ParentsInt($id="")
{
if(empty($id)) return false;
unset($this->TRAIL);
$this->TRAIL = array();
$this->get_Parents($id);
}
// 这个递归函数来取得路径信息数组
function get_Parents ($id="")
{
if( (empty($id)) or ("$id" == "NULL")) return false;
$sql = "SELECT id,parent,name from mulu where id=$id";
$conn = $this->CONN;
$results = mysql_query($sql,$conn);
if( (!$results) or (empty($results)) ) {
mysql_free_result($results);
return false;
}
while ( $row = mysql_fetch_array($results)) {
$trail = $this->TRAIL;
$count = count($trail);
$trail[$count] = $row;
$this->TRAIL = $trail;
$id = $row["parent"];
$this->get_Parents($id );
}
return true;
}
里面调用了类,不过对你来说没什么用,都是连接数据库什么的,最重要的是体会递归这个思想,当然不用递归也可以实现,不够好象比较麻烦
|