У меня есть веб-сайт, который перечисляет все источники пищи; В моей БД я сделал таблицу 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'];
}
Я очень ценю вашу помощь в этом отношении
Заранее спасибо…
Вы должны использовать рекурсивную функцию. значит проверить
Например:
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;
}
Значит, ваш цикл должен продолжать находить категорию до первого уровня.
Других решений пока нет …