[PHP] Kategorileme Mantıgı ve Fonksiyonu

[PHP] Kategorileme Mantıgı ve Fonksiyonu

PHP-Mysql[1]Arkadaşlar hepimiz mysql de mutlaka kategorileme yapmışızdır.Sınırsız kategori,kategori ve alt kategori mantıgı bazen insana kafayı yedirtir.Ben bunları fonksiyon haline getirip kodlamalarınıza dahil etmek için basit bir hale getirdim.

İlk önce

Kategori
-Alt kategori

bu mantıkla işleyen fonksiyonumuzu vereyim.

 

function kategori($basla,$limit){
    $ust    =mysql_query("select * from menuler where  menu_aktif='1' LIMIT ".$basla.",".$limit."");

        while ($don=dizi($ust)){

        //bu kısımda menu yapısına göre alt menu varsa bir sorgu yoksa baska sorgu
            if($don["altmenu"] == 1){
            $ustid=$don['id'];
            echo '<li class="warning"><a href="#">'.$menu_adi=$don["menu_adi"].'</a>';
            $alt    =mysql_query("select * from altmenuler where ustid='$ustid'");
            echo '<ul class="secondary">';
            //burada kategoriye göre alt menuler dönecek
            while($s=dizi($alt)){
            echo '
            <li><a href="#">'.$s["altmenu_adi"].'</a></li>';
            }
            }else{
            echo '<li><a href="">'.$menu_adi=$don["menu_adi"].'</a>';

            }
        echo '</ul></li></li>';
        }

}

Üstteki kodda baslangıç ve limit de verdim isterseniz kullanabilir isterseniz silebilirsiniz.

Mysql tablo yapısı

`ustmenuler` (`id`, `menu_adi`, `menu_sira`, `menu_icerik`, `menu_aktif`, `altmenu`)

`altmenuler` (`altid`, `altmenu_adi`, `altmenu_icerik`, `altmenu_aktif`, `ustid`)

Simdi sınırsız kategori ve alt kategori mantıgının fonksiyonunu vereyim.

Bu Fonksyionumuz

function SinirsizKategoriListele($kategoriArray , $ebeveyn = 0  , $kademe_pixel = 5 ,  $i = 0  ,  $menuler = NULL , $nested = FALSE )
{

  // Sayfalar Boşşa boş döndür.
    if( empty($kategoriArray) ){
        return;
    }

    // Eğer fonksiyon içinden çağırılmıyorsa
    if( !$nested ){
        // Sayfaları ebeveyn idsi ile yeni dizi oluştur
        foreach($kategoriArray as $row):
            $items[$row['menu_altid']][]=$row;
        endforeach;
    }else{
        // Nested ise gelen sayfaları al
        $items=$kategoriArray;
    }

    // Gelen sayfaları aç
    foreach( $items[$ebeveyn] as $sayfa ){
        // Boşluk hesapla
        $bosluk=str_repeat(' ',($i * $kademe_pixel));

        // Menuleri değişkene aktar
        $menuler .= '<li><a href="#">'.$sayfa['menu_baslik'].'</a>'.PHP_EOL;

        // Açılan menude bir alt sayfa var ise nested çağır
        if(isset($items[$sayfa['menu_id']])){
            $menuler .= '<ul class="sub-menu">'.PHP_EOL;
            $menuler=SinirsizKategoriListele($items,$sayfa['menu_id'],$kademe_pixel,($i + 1),$menuler,TRUE);
            $menuler .= '</ul>'.PHP_EOL;
        }

        $menuler .= '</li>'.PHP_EOL;
    }

    // Oluşan menüleri return et
    return $menuler;
}

buda cagırma ve dondurme

<?php
            $sql_kategori=mysql_query("SELECT * FROM menuler order by menu_sira ASC");
            $kategori_list=array();
            $i=0;
            while($row_kategori=mysql_fetch_object($sql_kategori)){
                $kategori_list[$i]['menu_id']=$row_kategori->menu_id;
                $kategori_list[$i]['menu_baslik']=$row_kategori->menu_baslik;
                $kategori_list[$i]['menu_altid']=$row_kategori->menu_altid;
                $i++;

            }
                echo  SinirsizKategoriListele($kategori_list);
?>
Önceki Mailchimp Toplu Mail Servisi Kullanımı Ücretsiz
Sonraki Email Takip Sistemi Raporlama Yapılması

Yazar hakkında

keykubad
keykubad 180 Gönderiler

2012 yılında yeni kimliği ve yeni bilgilerle sizlere teknoloji,web programlama,tasarim,güvenlik,internet ve programlar hakkında detaylı bilgiler vermek amaçlı kurulmuş kişisel web sayfamdır.

Yazara ait tüm yazılar

Diğer yazılarımız

PHP ve MYSQL 0 Yorum

Laravel Yardımcı Sınıf Ekleme ve Google Analytics Verilerini Sitenize Ekleme

Laravel ile yapılmış projelerinizde kullanabilmeniz açısından sizlere yardımcı sınıf eklemeyi videolu olarak detaylı bir şekilde anlattım.Ek olarak dahil ettiğimiz sınıf Google Analytics sınıfı olup projenizdeki görüntüleme kısmıda ayarlanmıştır.Çok basit iki

PHP ve MYSQL 0 Yorum

İpvoid Toplu Email Server IP Blacklist Sorgulayıcı

Merhaba işimizi kolaylaştırmak amaçlı ip adreslerinin email için blacklist olup olmadığını toplu şekilde sorgulama yapan php betiğidir.ip adreslerini text area içine toplu şekilde yazıp tek seferde sorgulama yapabilirsiniz.

PHP ve MYSQL 1Yorum

Php İf Deyiminin Alternatif Kullanımı ve Kullanılan Komutlar

Merhaba arkadaslar php’de if koşulunu tüm php kodlama yapan arkadaslar bilir ama eskiden PHP 3 döneminde kullanılan ve alternatif hale gelen if kullanımını sizlere aktarıcam şimdiki editörlerde dikkate alındığında kullanımı

0 Yorum

Herhangi bir yorum yapılmamış!

İlk yazan olabilirsin bu yazıyı yorumlamak istermisin?

Cevap bırakın

This site uses Akismet to reduce spam. Learn how your comment data is processed.