我有一个三列的表:id
,ref
和catName
。每行包含一个可以是子类别的类别;如果是这样的话,那么ref
列的引用就是主类别的id。当然,这个方法确保你可以创建许多子类别。让一个php方法运行自己,直到满足条件
现在我想为每个包含所有父母的catName
的类别创建一个url。
private function getCatUrl($cat, $ur = array()){
$sql = "SELECT * FROM shop_cat WHERE id = :id LIMIT 1";
$st = $this->db->prepare($sql);
$st->bindParam('id', $cat, PDO::PARAM_INT);
$st->execute();
$rij = $st->Fetch();
$ur[] = urlencode($rij['naam']);
if($rij['ref'] == 0){
//Done, I've reached the top parent;
return implode('/',$ur);
}else{
//there is a parent/reference above this level
//getting there
$this->getCatUrl($rij['ref'], $ur);
}
}
不知何故,这只会产生一个$顶级父母而不是孩子。 我在做什么错?
样本数据库:
id ref catName
1 0 GroundFloor
4 1 Portal
5 1 Stairs
2 0 FirstFloor
6 2 DiningArea
12 6 Chair
7 2 Toilet
9 2 SittingRoom
10 9 Couch
11 9 Dresser
3 0 Roof
8 3 LoungeChair
您能否包含来自数据库的数据示例。还有一个例子说明你如何调用这个函数(即什么参数) – ManseUK 2012-03-05 13:55:38