Я чувствую, что уже близок, но это просто не работает для меня. Я пытаюсь получить всех родителей в строке подкатегории:
Данные
cat_id | кот_родитель | имя_кошки | описание_кошки | кот_сорт | cat_active
1 | 0 | Главная | Местоположение основного форума | 6 | 1
2 | 0 | Программное обеспечение | Обсуждения программного обеспечения | 1 | 1
17 | 1 | Программирование | | 1 | 1
19 | 1 | Рабочая среда MySql | Описание | 1 | 1
20 | 2 | Таблицы SQL | Описание | 2 | 1
21 | 2 | Еще один тест | | 1 | 1
22 | 21 | Суб-Саб Кот | | 1 | 1
23 | 22 | Суб-суб-суб-кат | | 1 | 1
Контроллер
Код: Выделить всё
function getparents($catid = 1) {
$parents = $this->forum_model->get_parent($catid);
echo "
" . print_r($parents, TRUE) . "";
}
Модель
Код: Выделить всё
function get_parent($catid = 0) {
$parent = array();
$this->db->select('*');
$this->db->from(TBL_FORUM_CATEGORIES);
$this->db->where('cat_id',$catid);
$child = $this->db->get()->row_array();
$parent[] = $child;
if ($child['cat_parent'] == 0) {
return $parent;
} else {
$push = $this->get_parent($child['cat_parent']);
array_push($parent,$push);
}
}
Результат
Код: Выделить всё
Запуск контроллера с ID=22:
0.0007 SELECT * FROM `forum_categories` WHERE `cat_id` = '22'
0.0004 SELECT * FROM `forum_categories` WHERE `cat_id` = '21'
0.0004 SELECT * FROM `forum_categories` WHERE `cat_id` = '2'
Подробнее здесь: https://stackoverflow.com/questions/497 ... arent-data
Мобильная версия