php kategorileme Mantığı [YARDIM]

merhaba Arkadaşlar , 

php kategorileme sisitemi yapamya çalışıyorum  yönetim panelini halletim fakat verileri sayfaya çekerken problem yaşıyorum..

ezsql sınıfı 

<?php $menu = $db -> get_results("SELECT * FROM kategoriler ORDER BY ust_parrent=0,durum=1,sira asc");  ?>
<?php foreach ($menu as $menuw){ ?>
<l+i>
                                            <a href="sayfa.php?id=<?php echo $menuw->sayfa; ?>"><?php echo $menuw->kategori_adi; ?></a>
                                        </l+i>
<?php }?>

Görmüş olduğunuz gibi kodum yukarıda 

Kategori Tablom =

id - kategori_adi - ust_parrent -sira -durum -seo - sayfa

Veriyi Çekerken Sirasini ASC Olarak çekmesi gerekiyor üst parrenti 0 olanlar  birde durumu 1 olanları çekmesi gerekiyor 3 tane koşul fakat olmadı.. ve alt kategori mantını anlamadım bununla ilgili bilgilendirirseniz sevinirim

 

17-01-2014 19:15 Edit:17-01-2014 19:17

    Php

    safiye safiye

    konu  no suna katagori id sini yazdır  cekerkende konu nosuna göre cek

    örnek  katagori id 5

    konu no 5

    katagorileri cektiginde  konu nosu 5 olanları

    listelersin   kolay  gelsin

    17-01-2014 19:56

      Php

      Teşekkür ederim fakat sanırım anlatmak istediğimi anlamaıdnız 

      Alt kategori ve üst kategori aynı tabloda

      id - kategori_adi - ust_parrent -sira -durum -seo - sayfa

      ust_parrent = 0 olunca normal kategori 

      ust_parrent = altına girceği kateogrinin id alınca alt kategori oluyor

      ust_parrent  0 olanları çekmesse  alt ketegori normal kategori olarak görünüyor

      ------2

      sira = sira elle giriliyor yönetim panelinde 1,2,3,4,5,6 diye bunu ASC olarak çekmessem ANASAYFA HAKKIMDA REFERANSLAR VS karışık olarak geliyor

       

      3--- durum = 1 olunca menu görünecek 0 olunca görünmeyecek  gözükmesini istemediğim menülerde görünecek 

       

      4 - Sayfa no ile nasıl bir bağlantı kura bilirim anlmadım sadece tıklantığında sayfa.php?sayfa_id=    sayfanın id alacak  

       

      17-01-2014 20:18

        Php

        safiye safiye

        örnek

        konular.php


        $bilgi= mysql_query("SELECT * FROM katagori WHERE id'$id'");
        while($karagori_cek= mysql_fetch_array($bilgi))
        {
        $konuno=$karagori_cek[id];
        $k_bilgi= mysql_query("SELECT * FROM konular ORDER BY konuno'$konuno' ASC");
        while($konu_cek= mysql_fetch_array($k_bilgi))
        {
        echo $konu_cek[konubaslik];
        } } 

         

         

        17-01-2014 20:46

          Php

          iç içe iki döngü ile MYSQL çağırmak hızı düşürür. onun yerine SQL JOIN kullanınız.

          Her programcı birgün Php yi tadacaktır
          17-01-2014 21:43

            Php

            $tum_kategoriler =array();

            $MenuSorgu = $db -> get_results("SELECT * FROM kategoriler"); 

            foreach($MenuSorgu as $Katman){

            $tum_kategoriler[$Katman->id]['id'] = $Katman->id;

            $tum_kategoriler[$Katman->id]['kategori_adi'] = $Katman->kategori_adi;

            $tum_kategoriler[$Katman->id]['ust_parrent'] = $Katman->ust_parrent;

            }

             

              function KategoriBul($kategoriler){

             

            $dizi=array();

            foreach($kategoriler as $kategori){

            if($kategori['ust_parrent'] == 0)$dizi[] =$kategori;

            }

            return $dizi;

            }

            function altKategorileriBul($ustKat,$kategoriler,$tekrar = 2)

            {

            // Bir dizi oluşturuyoruz.

            $dizi = array();

             

            // Tüm kategorileri döngüye sokuyoruz.

            foreach($kategoriler as $kategori)

            {

            // Belirtilen kategorilerin alt kategorilerini alıyoruz ve diziye ekliyoruz.

            if($kategori['ust_parrent'] == $ustKat)

            {

            $dizi[] = $kategori;

            }

            }

            if(count($dizi) > 0)

            {

            foreach($dizi as $kat)

            {

             

            ?>

                                                        <?php

            echo ''.str_repeat('&nbsp;&nbsp;&nbsp;',$tekrar).' '.$kat['kategori_adi'].'';

             

            altKategorileriBul($kat['id'],$kategoriler,$tekrar+3);

            }

            }

            }

             

            $anaKategoriler = KategoriBul($tum_kategoriler);

             

            örnek bir kod buldum biraz oynadım işimi gördü fakat durumu 0 olan veriyi çekmeme ve siralamayi ekliyemedim

            17-01-2014 22:06

              Php

              bu tablonun biri sanırım:
              id - kategori_adi - ust_parrent -sira -durum -seo - sayfa

              kategori tablosunu da yazarsan SQL kodunu vereyim.

              Her programcı birgün Php yi tadacaktır
              17-01-2014 23:35

                Php

                alt kategorilerde Aynı Tabloda Alt kategoriyi Altına girceği Kategorinin id alıyor buda ust_parrent  kayıt oluyor 

                Örnek

                id - kategori_adi - ust_parrent -sira -durum -seo - sayfa

                1    HAKKIMDA                0            1                 1        hakkimdasayfasi   

                2    Biyografi                   1           1                  1        biyografisayfasi

                 

                fakat ikinci bir tablo olşturmam gerekiyorsa oluştura bilirim

                Yeni farkettim 3 level Kategori Açamıyorum 

                  111111

                         11111111111

                Olmuyor  Vaktiniz varsa işimi görecek bir php kodu paylaşabilirseniz sevinirim

                18-01-2014 17:48 Edit:18-01-2014 18:06

                  Php

                  kategori isimli bir tablo oluşturursan daha pratik olur. Özellikle ağaç yapısında kategori yapacaksan en pratik yolu budur.

                  makale tablosunda da INT bir alan açıp içine kategori_no olarak ekleme yaparsın.

                  --kategori--

                  ID - ismi - orderi - parrent

                  Her programcı birgün Php yi tadacaktır
                  20-01-2014 13:25

                    www.Phpkodlari.com © 2009 Herkes Php öğrenecek
                    Web tasarım ve eğitim kaynağınız.