folder Tahribat.com Forumları
linefolder Asp - Php - Cgi - Perl
linefolder ASP Treeview Döngü Sorunsalı :|



ASP Treeview Döngü Sorunsalı :|

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Fikret
    Fikret's avatar
    Kayıt Tarihi: 01/Ekim/2007
    Erkek

    şöyle birşey yapmaya çalışıyorum.

    ana_kategori
    --alt_kategori
    ----alt_kategorinin_alt_kategorisi
    ------onunda_alt_kategorisi

    ana_kategori2
    --alt_kategori

     

    falan diye uzuyor işte. tablo yapım;

    id | ad | ustkategoriid

    şeklinde. 3 alt kategori olsa içiçe 3 sorgu ile olayı kapatırım ama 20-30 da olabilir :D yapmak istediğim sınırsız alt kategoriyi listeletmek. ağaç menü mantığı. basit göründü ama yapmaya çalışınca tıkandım :| zoque'de böyle birşey buldum o da aşırı uzun ve tabloda ekstra alanlar var. yardımcı olabilecek olan ?


    screw you guys! i"m goin" hoooome!
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Blitz
    Blitz's avatar
    Kayıt Tarihi: 30/Eylül/2007
    Erkek

    sanırım bu yardırmcı olur...

     http://www.asprehberi.net/icerik/2177.html

     


    validen
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Fikret
    Fikret's avatar
    Kayıt Tarihi: 01/Ekim/2007
    Erkek
    hocam oraya baktım onu zaten biliyorum :) burda kategorileri birbirine bağlamayı anlatmış. burdaki mantıkla 20 alt kategori için 20 sorgu ve döngü yapmak lazım. treeview bundan daha kapsamlı bişi ama bulamadım onu :/

    screw you guys! i"m goin" hoooome!
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Fthrkl
    Fthrkl's avatar
    Kayıt Tarihi: 04/Mart/2008
    Erkek

    yazdığın yapının adı adjacency list model

    asp ile dediğin şeyi recursive (kendi kendini çağıran) fonksiyonlarla yapabilirsin.
    örnek veriyorum

    function katlistele(katId)
       
            set kategoriler = baglanti.execute("select * from Kategoriler where UstId=" & katId)   
           
            while not kategoriler.eof
           
                response.write "<li>"           
               
                    response.write kategoriler("KategoriAdi")
               
                response.write "</li>"
               
                    katlistele(kategoriler("KatId"))

                response.write chr(13)
           
            kategoriler.movenext:wend
            response.write "</ul>"
            kategoriler.close
       
    end function

    katlistele(0)
    burdaki sıfır en ana kategori. bu şekilde bütün kategoriler-altkategoriler listelenir.
    sen bi kategorinin altındakileri listeyeceksen oraya o kategorinin idsini yazman gerek.

    asp ile böyle fonksiyonlarla girmeden yapabilcegin bi model daha var nested set model ama onun yapısı sql kısmında daha zor

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Fikret
    Fikret's avatar
    Kayıt Tarihi: 01/Ekim/2007
    Erkek
    Teşekkür ederim hocam :) Sql kısmını gördüm union ve join kullanarak yapılmıştı sanırım ama bu fonksiyon işimi görür :)

    screw you guys! i"m goin" hoooome!
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Fikret
    Fikret's avatar
    Kayıt Tarihi: 01/Ekim/2007
    Erkek

    Peki buna ağaç menü görüntüsü nasıl verebiliriz ?

    yani;

    anakategori

    --alt

    ----ona bagli alt

    vs. gibi ? 


    screw you guys! i"m goin" hoooome!
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DarkF4Te
    DarkF4Te's avatar
    Kayıt Tarihi: 02/Mart/2008
    Erkek
    Fiko bende bi benzerini yapmaya calısmıstım

     123ip.png%20%28595×227%29

    böyle birşey oldu
     
    -------------------------------------------------------------------------- 

    function alt_kat($liste,$carpan=1){
    $t=count($liste);
    $sp="|- ";
    for($i=0;$i<$t;$i++){
    if(gettype($liste[$i][0]) == "array"){
    echo ' |- ';
    for($s=0;$s<$carpan;$s++){
    echo $sp;
    }
    echo $liste[$i][0][2].'';
    alt_kat($liste[$i][1],$carpan+1);
    }else{
    echo ' |- ';
    for($s=0;$s<$carpan;$s++){
    echo $sp;
    }
    echo $liste[$i][2].'';
    }
    }
    }


    $liste=kategori_listesi();
    $t=count($liste);
    for($i=0;$i<$t;$i++){
    if(gettype($liste[$i][0]) == "array"){
    echo ' |- '.$liste[$i][0][2].'';
    alt_kat($liste[$i][1]);
    }else{
    echo ' |- '.$liste[$i][2].'';
    }
    }

    --------------------------------------------------------------------------


    listeyi alan fonksiyonda 
    function kategori_listesi($id=0){
    $k=mysql_query("select * from kategoriler where kid = '$id' order by isim asc;");
    if(mysql_num_rows($k) < 1){return false;}
    while($z=mysql_fetch_row($k)){
    $alt=kategori_listesi($z[0]);
    if($alt == false){
    $sonuc[]=$z;
    }else{
    $n[]=$z;
    $n[]=$alt;
    $sonuc[]=$n;
    }
    }
    return $sonuc;
    }
    söyle birşey seninle phpce anlaşabildiğimiz ve tek satır asp bilmediğim için başka ne desem bilemiyorum ama mantık olarak acıklamak gerekirse array temelli bir işlem eger alt ketegorisi varsa bunları bir dizi halınde saklıyor degıskenın ıcerıgının turune bakıp string ise yazıyor array ise ilk elemanını  (bu ana kategorisi oluyor) yazıp alt kat fonksiyonunu cagırıyor oda bunun benzerını yapıyor zaten.
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Fikret
    Fikret's avatar
    Kayıt Tarihi: 01/Ekim/2007
    Erkek

    bro pek bişi anlamadım diyebilirim :D ama araştırmaya devam ediyorum bulcam bi yolunu :p

    edit:

    Function KategoriListele(ID)
        Set Kategoriler=Baglanti.Execute("Select * From Tbl_Kategoriler Where UstKategoriID="&ID)
            Response.Write "<ul>"
            Do Until Kategoriler.EOF
                Response.Write "<li>"&Kategoriler("Ad")
                KategoriListele(Kategoriler("ID"))
                Kategoriler.MoveNext
                Response.Write "</li>"
            Loop
            Response.Write "</ul>"
        Kategoriler.Close
    End Function

    bu şekilde list ile hallettim ama list yerine "--" koysam daha iyi olcak :) onu yapıcam olursa editler koyarım burayada. 


    screw you guys! i"m goin" hoooome!
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Fikret
    Fikret's avatar
    Kayıt Tarihi: 01/Ekim/2007
    Erkek

    up :/

    1
    --2
    ----3
    --4

    vs. şeklinde yapmak istiyorum çözemedim :/ uplym bari.


    screw you guys! i"m goin" hoooome!
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    biri
    biri's avatar
    Kayıt Tarihi: 03/Ocak/2009
    Erkek

    hocam id isim aid sira diye sütunlar aç

    ana başlığın aid sütunu 0 olsun diğerlerinde aid hangisinin idsi ise olsun sirada tek tek gitsin


    ¯\(ツ)/¯ ฏ๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Fikret
    Fikret's avatar
    Kayıt Tarihi: 01/Ekim/2007
    Erkek

    tolgasen bunu yazdı:
    -----------------------------

    hocam id isim aid sira diye sütunlar aç

    ana başlığın aid sütunu 0 olsun diğerlerinde aid hangisinin idsi ise olsun sirada tek tek gitsin

    -----------------------------

    hocam öyle zaten ama 3-5 alt kategori olmayacakki :) tablo yapım dediğin gibi zaten. adam 30 kategori daha eklese altalta bunu tek fonksiyonla listelemem gerek. yazdığım fonksiyon bunu yapıyor fakar list ile değilde ağaç mantığıyla olsun istiyorum. 


    screw you guys! i"m goin" hoooome!
Toplam Hit: 3912 Toplam Mesaj: 26