Эта функция в настоящее время получает дочерний уровень категории один от родителя. Мы знаем родителя ($ category_id), он проверяет дочернюю категорию и возвращает результат правильно.Список всех категорий детей для родительской категории
// list category for the category (type)
function getCategoryItemsList($category_id) {
$cat_list = $category_id;
// check for child category
$sql = "select category_id from category where category_parent_id = $category_id ";
$cat_ids = getSqlResult($sql, SQL_RESULT_ALL);
foreach($cat_ids as $item) {
$cat_list = $cat_list . ',' . $item['category_id'];
}
return $cat_list;
}
Проблема, когда у нас есть несколько уровней категорий, как:
родительского> ребенок> внучатого ребенок> двоюродного внучатого ребенок
Как я могу вернуть все уровни ребенка категории родителей ?
///// MYSQL CATEGORY DB
category_id category_name category_parent_id
1 shoes 0
2 blue shoes 1
3 men blue shoes 2
4 men blue shoe small 3
5 red shoes 1
6 men red shoes 5
7 shirts 0
Ожидаемый результат при $ category_id = «1» будет 2,3,4,5,6
Какую БД вы используете? Кстати, я постараюсь сделать это на уровне БД. – MaxU
db - mysql. –
Я думаю, это именно то, что вы ищете: http://dba.stackexchange.com/questions/30021/mysql-tree-hierarchical-query – MaxU