mysql — находит все средние категории от n-го дочернего до верхнего уровня в рекурсии PHP

У меня есть таблица категорий:

Category table:
cat_id      cat_pid     cat_name
1           0       Women's Fashion
2           1       Women Accessories
3           2       Wallets & Cardholders
4           3       Cases

У меня есть идентификатор категории родительского уровня «Женская мода (cat_id = 1)» и идентификатор категории уровня листа «Cases (cat_id = 4)»

Я хочу найти все категории от 4 до 1.

Массив так:

Array(
[0]=>2
[1]=>3
)

0

Решение

я не знаю, используете ли вы mysqli или PDO, поэтому я написал код по основам …

<?php

$cats = [];

function find_parent($parent_id){
global $cats;
if ($parent_id > 0){
$q = mysql_query('SELECT cat_pid FROM Category WHERE cat_id = ' . $parent_id);
$r = mysql_result($q, 0, 'cat_pid');
if ($r > 0){
$cats[] = $parent_id;
find_parent($r);
}

}
}

find_parent(4);
array_shift($cats); //it adds first record too and i think you don't want so removing it here...
print_r($cats);
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]