ayri ayri sorgula oluşturacaksin.
kategori sanirim bahsettigin forumlarin kategorisi adımlar
1 - kategori sorgusu
2 - while döngüsü
3 - bu while döngüsü içinde 2. bir sorgu buda forum sorgusu where='' oalarak üstteki sorgudan aldigin kategori id'ini kullanacaksin.
4 - 2. sorgunun while döngüsü sonra döngüleri kapatacaksin.
vbulletin için soruyorsun sanirim, pek bilmiyorum.
örnek kod üzerinden gidersek
//1 - bu kategori sorgusu olacak
$umut_menu_sorgu = $db->query("SELECT forumid, title, parentid FROM ".TABLE_PREFIX."forum WHERE parentid = -1 ORDER BY forumid ASC LIMIT 0, 20"); 
//2 - üstteki sorgunun döngüsü
while($umut_menu = $db->fetch_array($umut_menu_sorgu)) 
{
$title .= $umut_menu[title];
$id = $umut_menu[forumid];
//3 - 2. sorgu buarada 1. sorgudan aldigin kategorinin id'sini kullanacaksin. tablo yapilarini ve neyin ne oldugunu bilmedigimden kodu veremicem
$umut_menu_sorgu = $db->query("SELECT forumid, title, parentid FROM ".TABLE_PREFIX."forum WHERE parentid != -1 ORDER BY forumid ASC LIMIT 0, 20"); 
//buarada da bir while oluşturacaksin.
}//while'lari kapat