Hocam kodlarını incelemedim biraz karışık geldi ama daha önce böyle bişey yapmıştım kısaca mantığını anlatayım sana.
veritabanında kategorilerini ayrı tablolarda tuttuğunu var sayıyorum. şimdi bilgisayar=1 ve tv=2 olsun;
onun alt kategorisi olan markalarda casper=1 samsung=2 vestel=3 olsun.
modellerde 1 2 3 diye gidiyor farzedelim..
üst kategoride veri tutmana gerek yok. alt kategoride markaların yanına kategori id lerini çekelim. casper bilgisayar olduğu için tablomuzda kategori alanı 1 olacak. ve casper'ın 1. model bilgisayarının kategoriside 1 olacak böylece sql inner join ile tabloloarı birleştirip istediğin alana istediğin veriyi yazabilirsin.
Umarım yardımcı olur kolay gelsin.
Uğraşmışsın sağol ama hiç anlamadım bayadır uğraşıyorum belki ondan

kod olarak yardımcı olursan çok makbule geçer