Этот вопрос закрыт для ответов, так как повторяет вопрос Как вытащить все родительские записи в БД?
serg_small_developer
@serg_small_developer
Начинающий прогер

Как получить все родительские категории?

Всем привет, вопрос почти такой же как тут, но не совсем, вообщем суть, у меня есть множество вложенных подкатегорий. Так же товары, у товара может быть только одна категория (на самом деле там не категории, а другая сущность, но для простоты будем считать что это категория), товар хранит только один 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"(, подскажите пожалуйста как еще можно реализовать подобное?)
  • Вопрос задан
  • 131 просмотр
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы