php и mysql динамические хлебные крошки

У меня есть веб-сайт, который перечисляет все источники пищи; В моей БД я сделал таблицу MySQL с именем [foods]

стол еды

На моей странице, когда пользователь нажимает на категорию, он получает список всех своих детей. в моем случае

food
-- Plants
---- Vegetable
------ Aubergine
------ Broad_bean
------ Broccoli
------ Carrot
---- Fruits
------ Apple
------ Apricot
------ Banana
------ Cherry
------ Clementine
------ Guava
-- Animals

Сейчас, Я хочу сделать динамическую навигацию по сухарям в верхней части моей страницы, что-то вроде

Food > Plants > Fruits > Banana

Таким образом, пользователь может перемещаться по ним.

Я пробовал несколько запросов, чтобы получить это, но безуспешно.

Каждый раз, когда я получаю только первый родитель из категории только

Так что если я в Banana страница, которую я получаю только Fruits категория, ничего глубже.

Я знаю, что должен использовать while петля where cat_parent_id != 0 но я не мог придумать, как правильно это осуществить!

вот фрагмент кода, который я пробовал

$cat_parent_id = $_REQUEST['cat_id'];

$q = mysqli_query($link, "SELECT * FROM foods WHERE cat_id = $cat_parent_id");
while($r = mysqli_fetch_assoc($q))
{
echo $name = $r['cat_name'];
}

Я очень ценю вашу помощь в этом отношении

Заранее спасибо…

-1

Решение

Вы должны использовать рекурсивную функцию. значит проверить

Например:

function show_breadcumb($cat_id)
{
$q = mysqli_query($link, "SELECT * FROM foods WHERE cat_id = $cat_id");
while($r = mysqli_fetch_assoc($q))
{
$name = $r['cat_name'];
$string.= $name .">".$string
}
//check if this category has any parent again call this fucntion
if( has parent  ) { show_breadcumb($cat_id) }
else return $string;
}

Значит, ваш цикл должен продолжать находить категорию до первого уровня.

-1

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector