Задать вопрос

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

Есть вот такая таблица: 3-etdfydak.jpg
Мне нужно вывести все категории так, чтобы получилось что-то вроде этого:
Категория 1
Категория 2
Категория 3
--подскатегория третьей
----подскатегория четвертой
И, собственно, вот как я это делаю:
$r - mysql_query("SELECT `id`,`name`,`parent` FROM `category` WHERE `parent` = 0"); // берем категории, которые явно не "подкатегории"
while($w = mysql_fetch_assoc($r)){
	echo $w['name'];
	$r2 = mysql_query("SELECT * FROM `category` WHERE `parent` = {$w[id]}"); // вытягиваем все подгатегории полученной категории
	if(mysql_num_rows($r2) > 0){
		while($w2 = mysql_fetch_assoc($r2)){
			echo '--'.$w2['name'];
		}
	}
}

Это явно ресурсоемкая операция, если учитывать то, что подкатегорий может быть сколько угодно и категорий тоже, а у каждой категории или подкатегории могут быть свои. Получается очень много азпросов.
Что можно придумать менее сложное для базы?
  • Вопрос задан
  • 404 просмотра
Подписаться 2 Оценить Комментировать
Ответ пользователя Rsa97 К ответам на вопрос (3)
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Храните дерево категорий в Nested Set, тогда его вывод будет намного проще.
Ответ написан
Комментировать