• 04-07-2013, 16:41:32
    #1
    Selam arkadaşlar başlıkta belirttiğim gibi asp ile sınırsız kategori sistemi yaptım güzel çalışıyor. Fakat ağaç sistemi oluşturamıyorum. Daha detaylı anlatmak gerekirse bir tane bilgisayar kategorim var altında dell, casper onun altında model1, model2 vs diye kategorilerim var ben model2 ye girince bunun üst kategorilerini yazdırmak istiyorum örneğin,

    model2 sayfasına girince

    Şu an ; bilgisayar > casper > model2 kategorisindesiniz. gibi yazdırmak istiyorum kullandığım kodlar şöyle

    <ul>
    <%
    subRecursive 0, 0
    sub subRecursive(ParentID, intLevel)
    dim objRs
    dim strSql
    
     strSql = "SELECT id,ad FROM urunkategori WHERE ustkat = " & ParentID     
    set objRs = baglanti.Execute(strSql) 
    
    if Not objRs.EOF then     
    do while Not objRs.EOF
    if seo=1 then
    %>
    <li><img src="<%=siteurl%>/images/bosluk.gif" border="0" width="<%= 25 * intLevel %>" height="1"><img src="<%=siteurl%>/tema/<%=tema%>/kat_ico.png">&nbsp;<a href="<%=siteurl%>/kategori/<%=objRs("id")%>/<%=seoyap(objRs("id"))%>.html"><%= objRs("ad")%></a></li>
    <%subRecursive objRs("id"), intLevel + 1 %>
    <%else%>
    <li><img src="<%=siteurl%>/images/bosluk.gif" border="0" width="<%= 25 * intLevel %>" height="1"><img src="<%=siteurl%>/tema/<%=tema%>/kat_ico.png">&nbsp;<a href="kategori.asp?id=<%= objRs("id")%>"><%=objRs("ad")%></a></li>
    <%subRecursive objRs("id"), intLevel + 1 %><%
    end if
     
    objRs.MoveNext
    loop
    end if 
     
    if Not objRs Is Nothing then
     objRs.Close
    end if
    set objRs = Nothing
        
    end sub
    %></ul>

    Aslında bu ağaç sistemini yönetim panelinde kullanmak istiyorum nedeni ise hem samsung bilgisayar var diyelim hemde televizyon samsung kategorisi açılınca sorun oluyor. Yardımlarınızı bekliyorum.
  • 05-07-2013, 14:21:21
    #2
    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.
  • 05-07-2013, 21:57:51
    #3
    humanwere adlı üyeden alıntı: mesajı görüntüle
    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
  • 07-07-2013, 15:22:35
    #4
    subasioguz adlı üyeden alıntı: mesajı görüntüle
    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
    veri tabanı :

    tablolar

    Katgori
    marka
    model
    ürünler

    ____________


    kategori tablosu:

    kategori_adi id
    televizyon 1
    Laptop 2
    Masaüstü 3


    Marka Tablosu :

    Marka_ismi id Kategori_id
    Casper Laptop 1 2
    Casper Masaüstü 2 3
    Vestel 3 1
    HP Laptop 4 2
    HP Masaüstü 5 3

    Model tablosu :

    Model_ismi id Marka_id
    Casper Laptop1 1 1
    Casper Laptop2 2 1
    Casper Masaüstü1 3 2
    Casper Masaüstü2 4 2
    Vestel Televizyon1 5 3


    Kardeşim iş veri tabanında üstte detaylarını yazdım burdan sonra sql cümlesi ile işi bitirirsin. İnner join yapısını biliyorsun diye farz ediyorum eğer bilmiyorsan yine yazarım. Veri tabanını bu hale uyarladığında istediğin veriyi istediğin yere yazabilirsin.
  • 10-07-2013, 10:48:08
    #5
    şöyle yaparsak biraz daha kolay anlaşılır sanki...

    yine arkadaşın verdiği örneği kullanarak anlatacağım.

    Tablolar
    -------------
    Kategori
    marka
    Model
    Ürünler


    Marka tablosu
    marka_id / ismi
    ----------------
    1 / Vestel
    2 / Hp
    3 / Sony
    4 / Arçelik

    kategori tablosu
    Kategori_id / ismi
    ----------------
    1 / Bilgisayar
    2 / Cep Telefonu
    3 / Yazıcılar
    4 / Sarf Malzemeleri

    model tablosu
    model_id / ismi
    ----------------
    1 / Laptop
    2 / Masaüstü
    3 / Lazer Yazıcılar
    4 / modem
    5/ Mürekkep Püskürtmeli

    Ürün bölümünde ise
    Mesela hp mürekkep püskürmeli yazıcı için vede Vestel masaüstü pc için

    marka / kategori / model / ürün adı / vs....
    2 3 5 hp mürekkep püskürmeli yazıcı vs.vss....
    1 1 2 Vestel masaüstü pc
    gibi...

    umarım anlatabilmişimdir.
    kolay gelsin...