Php Sınırsız Kategori ve Alt Kategori Listeleme
Merhaba Arkadaşlar php ile uğraşan herkesin mutlaka bir yerde ihtiyacı olacağını düşündüğüm sınırsız kategori ve alt kategori listeleme kodları illaki lazım olacaktır. Belkide kafanız karıacak nasıl yapsak diye düşüneceksiniz oysaki çok basit bir yapı ile bir fonksiyon ile bu işlemi gerçekleştirelim.
İşte sınırsız php kategori ve altkategori listeleme için kullanacağımız fonksiyon kodları
function kategoriListe($id) { global $con; echo "<ul>"; $kod="SELECT K.id, K.kategoriAdi, (SELECT COUNT(A.id) FROM kategoriler AS A WHERE A.pid=K.id ) as altKategoriSayisi FROM kategoriler AS K WHERE K.pid={$id}"; $sql=mysqli_query($con,$kod); while($veri=mysqli_fetch_assoc($sql)) { echo "<li>".$veri["kategoriAdi"]; if($veri["altKategoriSayisi"]>0) kategoriListe($veri["id"]); echo "</li>"; } echo "</ul>"; }
Sql kodlarımız 3 tablodan oluşacak id, pid, kategoriAdi olmak üzere
id - int (auto_increment, key) pid - int kategoriAdi - varchar(50)
SQL dosyasını çalıştırdığınız zaman aşağıdaki tabloda kayıtların verilerin yer aldığı tablomuz oluşacaktır.
id | pid | katagoriAdi |
1 | 0 | Bilgisayar |
2 | 1 | Dizüstü Bilgisayarlar |
3 | 1 | Masaüstü Bilgisayarlar |
4 | 1 | Oyun Bilgisayarları |
5 | 2 | Casper Notebook |
6 | 2 | Asus Notebook |
7 | 4 | Monster Notebook |
8 | 4 | MSI Notebook |
9 | 0 | Yazıcılar |
10 | 9 | Lazer Yazıcılar |
11 | 9 | Mürekkep Püskürtmeli Yazıcılar |
12 | 9 | Tanklı Yazıcılar |
13 | 10 | HP Yazıcılar |
14 | 10 | Canon Yazıcılar |
15 | 13 | HP M Serisi |
16 | 13 | Canon AirPrint Serisi |
Bu tabloda yer alan pid değeri yani parent id değeri, o kategorinin bağlı bulunduğu üst kategorinin id değerini belirtiyor. Ana kategorilerin pid değeri ise 0 olarak belirlenmiş durumda.
kategori ekletirken kategori adı , ve altına var olan kategorileri listeleyin. seçilen kategori eklediğinizin üst kategorisi olacağı için sınırsız kategori sablonu oluşturabiliyoruz alt kategori seçilmez. ise ana kategori için. pid yi 0 olarak göndermeniz yeterlidir.