У меня есть таблица с тремя столбцами: id
, ref
и catName
. Каждая строка содержит категорию, которая может быть подкатегорией; если это так, то в столбце ref
указывается идентификатор основной категории. Конечно, этот метод гарантирует, что вы можете создавать многочисленные подкатегории.
Теперь я хочу создать URL для каждой категории, содержащей catName
всех его родителей.
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);
}
}
Каким-то образом это производит только $ 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