У меня есть таблица с тремя столбцами: id
, ref
и catName
. Каждая строка содержит категорию, которая может быть подкатегорией; если это так, то столбец ref
ссылается на идентификатор основной категории. Вне курса этот метод гарантирует, что вы можете создать множество подкатегорий.Сделать метод php запуститься до тех пор, пока не будет выполнено условие
Теперь я хочу сделать 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
Можете ли вы привести пример своих данных из своей БД. И пример того, как вы вызываете эту функцию (то есть какие параметры) – ManseUK