Aşağıdaki kodda, "kategoriler" tablomuza bağlanıyoruz, sizin data yapınıza göre değişkenler:
kat_id = id
kat_ustid = ust_menu_id
kat_adi = link_adi
<?php
// Kategorileri çekiyoruz...
$query = "SELECT * FROM kategoriler order by kat_id ASC";
$goster = $db->prepare($query);
$goster->execute(); //queriyi tetikliyor
$toplamSatirSayisi = $goster->rowCount(); // sorgudan dönen satır sayısını öğreniyoruz
$tumSonuclar = $goster->fetchAll(); //DB'deki bütün satırları ve sutunları $tumSonuclar değişkenine dizi şeklinde aktarıyoruz
//alt kategorisi olmayan kategorilerin sayısını öğreniyoruz:
$altKategoriSayisi = 0;
for ($i = 0; $i < $toplamSatirSayisi; $i++) {
if ($tumSonuclar[$i]['kat_ustid'] == "0") {
$altKategoriSayisi++;
}
}
// Kategoriler yazdırıyoruz...
for ($i = 0; $i < $toplamSatirSayisi; $i++) {
if ($tumSonuclar[$i]['kat_ustid'] == "0") {
Ust_Kategoriler($tumSonuclar[$i]['kat_id'], $tumSonuclar[$i]['kat_adi'], $tumSonuclar[$i]['kat_ustid']);
}
}
function Ust_Kategoriler($id, $baslik, $ustKategori) {
global $tumSonuclar;
global $toplamSatirSayisi;
//kategorinin, alt kategori sayısını öğreniyoruz:
$altKategoriSayisi = 0;
for ($i = 0; $i < $toplamSatirSayisi; $i++) {
if ($tumSonuclar[$i]['kat_ustid'] == $id) {
$altKategoriSayisi++;
}
}
// eğer alt kategorisi varsa, link vermiyoruz...
if ($altKategoriSayisi > 0) {
echo '<li class="has-sub"><a href="'.$id.'-urunler-'.permalink($baslik).'.html">'.$baslik.' ('.$altKategoriSayisi.') <div class="arti artidiv"><i class="fa fa-plus-square-o"></i></div><div class="arti eksidiv"><i class="eksi fa fa-minus-square-o"></i></div></a>';
}else{
echo '<li class="has-sub"><a href="'.$id.'-urunler-'.permalink($baslik).'.html">'.$baslik.' ('.$altKategoriSayisi.')</a>';
}
if ($altKategoriSayisi > 0) { //alt kategorisi varsa onları da listele
echo '<ul>';
for ($i = 0; $i < $toplamSatirSayisi; $i++) {
if ($tumSonuclar[$i]['kat_ustid'] == $id) {
Ust_Kategoriler($tumSonuclar[$i]['kat_id'], $tumSonuclar[$i]['kat_adi'], $tumSonuclar[$i]['kat_ustid']);
}
}
echo '</ul>';
}
echo '</li>';
}
?>