Всем привет, вопрос почти такой же как
тут, но не совсем, вообщем суть, у меня есть множество вложенных подкатегорий. Так же товары, у товара может быть только одна категория (на самом деле там не категории, а другая сущность, но для простоты будем считать что это категория), товар хранит только один id категории к которой его привязали, как мне сделать так чтобы в карточке товара, выводилось название категории к которой привязан товар и все родительские категории?, сама база выглядит примерно так
id
parent_id
name
вот такой же
вопрос как у меня, но ответ не подходит, так как считаю что делать в цикле запрос в bd с parent_id не совсем умно, особенно когда вложенности очень большие, пробовал делать вот так
function getArrayParent($rows, $category_id) {
foreach ($rows as $row) {
if ($row['id'] == $category_id){
if ($row['parent_id'] == 0){
return $result[] = ['parent_id'=>0, 'name'=>$row['name']];
} else {
$result[] = ['parent_id'=>$row['parent_id'], 'name'=>$row['name']];
getArrayParent($rows, $row['id']);
}
}
}
return false;
}
// $category_id - нужно найти всех родителей этой категории
// $array- массив со всеми записями категорий
$result = getArrayParent($array, $category_id);
т.е. делаю выборку всех категорий из таблицы, а потом перебираю этот массив и пытаюсь найти родительские категории, но эта функция у меня вызывает "Fatal error: Allowed memory size"(, подскажите пожалуйста как еще можно реализовать подобное?)