Kodları paylaşmam etik olmaz çünkü parayla sattığım bir projedir kendisi.

fakat mantığını anlatmaya çalışayım.


ilk önce gelen id 5 olarak cvarsayalım

sorgu çalıştırarak 5 in içindeki ürünleri listeliyosun.. daha sonra 5 in alt kategorilerini listelemek için..

bir fonksiyon oluşturuyosun fonksiyona categori id (5) yi gönderiyosun
deneme($gelenid) {
fonksiyonun içinde şöyle bir sorgu olacak gönderdiğin idnin daha üstünde bir id var mı diye bakacak.
$sorgu51=mysql_query("SELECT * from categories where ustcatid= '$gelenid'");
$varyok=mysql_num_rows($sorgu51);
if ($varyok!=0){ [B]//yani üst kategorisi varsa [/B]
while($satir51=mysql_fetch_assoc($sorgu51)){
$catid=$satir51["catid"]; // o kategorinin idsini alacak
$sorgu52=mysql_query("SELECT * from products where catid= '$catid'"); //o kategorideki ürünleri listelicek 
}
bu tarz bişeyler kurcalayarak deneme yanılmayla tam sonuca ulaşabilirsin diye düşünüyorum..

birde ben direk yazdırmak yerine yazdıracağım ürünlerin id sini bir diziye atmıştım bu şekilde daha kolay olmuştu. Daha sonra o dizideki elemanları döngüye sokarak yazdırmıştım.