Есть вот такая таблица:
Мне нужно вывести все категории так, чтобы получилось что-то вроде этого:
Категория 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'];
}
}
}
Это явно ресурсоемкая операция, если учитывать то, что подкатегорий может быть сколько угодно и категорий тоже, а у каждой категории или подкатегории могут быть свои. Получается очень много азпросов.
Что можно придумать менее сложное для базы?