iç içe sorgular yapabilirsin. örneğin ana kategorileri sorgulayıp ekrana basarken şöyle bi yapı var diyelim..

<?


$sorgu = mysql_query ( ...

// Kategorileri sırayla alalım ekrana basalım. Ve o kategorinin alt kategorilerini..
while ($alan = mysql_fetch_array($sorgu)) {

 echo "Kategori Adı : " . $alan['kat_adi'];
 echo "Bu kategorinin ID numarası : " . $alan['id'];

// kat_id hanesinde, bu kategori numarasını taşıyan Alt Kategoriler..
 $sorgu2 = mysql_query("SELECT * FROM alt_kategoriler WHERE kat_id = '" . $alan['kat_adi'] . "'");

   while ($alt = mysql_fetch_array($sorgu2)) {
     echo ">>> Bu alt kategorinin adı : " . $alt['alt_kat_adi'];
   }

}

?>
yani her kategoriyi ekrana basarken, o basma anından hemen sonra, o kategoriye ait alt kategorileride basıyoruz..

böylece

kategori 1.... (çıktıktan sonra, varsa alt lar.)
--> alt kategori 1
--> alt kategori 2

kategori 2.......
..
..