Php Sonsuz Kategorileme ile ilgili Bir Sorun

Şu anda konuyu okuyanlar (Üyeler: 1, Ziyaretçi & Botlar: 0)


flashman3858

Üyecik
Katılım
3 Ağu 2019
Mesajlar
1
Puanları
1
İyi günler ben bir sitem için sonsuz kategori sistemi yapmak istedim internetten bir kod buldum ve başarılı bir şekilde sonsuz kategorileme işlemini gerçekleştirdim aşağıda bir resim ve bulduğum kodu sizinle paylaşıyorum.

sonsuzmenu.jpg.ba74d89c00431052845df2eb2668dca8.jpg


Kod:
<ul class="flexy-menu">
    <li class="active"><a href="index.php">ANASAYFA</a><div class="menu-space"></div></li>
    <li><a href="kurumsal.php">KURUMSAL</a><div class="menu-space"></div></li>
    <li><a href="#">ÜRÜNLERİMİZ</a><div class="menu-space"></div>
     <!--  MENÜ İÇİNE SINIRSIZ KATEGORİYİ LİSTELEME BAŞLADI   -->           

     <?php
     function kategori_listele($kategori_id=0){

      global $db;

      $kategori_listele = $db -> prepare ("select kategori_id, ana_kategori_id, kategori_adi from kategoriler where ana_kategori_id=:kategori_id");
      $kategori_listele -> execute ( array("kategori_id"=>$kategori_id) );
      echo '<ul>';

      while ($kategoriler_dizisi= $kategori_listele -> fetch (PDO::FETCH_ASSOC) ){

        $kategori_id = $kategoriler_dizisi["kategori_id"];
        $ana_kategori_id = $kategoriler_dizisi["ana_kategori_id"];
        $kategori_adi = $kategoriler_dizisi["kategori_adi"];
        

        echo "<li> <a href='urundetay.php?kategori_id=$kategori_id'>$kategori_adi</a>";


        // Yazılan Bu kategorinin alt kategorisi varsa fonksiyonu tekrar çağıracak yoksa çağırmayacak. Onun için de bu kategori altında alt kategori var mı onu saydırıyorum.
        $sql_say = $db -> prepare ("select * from kategoriler where ana_kategori_id=:kategori_id order by kategori_adi desc");
        $sql_say -> execute ( array ("kategori_id"=>$kategori_id) );
        $alt_kategori_say = $sql_say -> rowcount();

        // Alt kategori sayısı 0 dan büyük ise aynı fonksiyon tekrar kullanılacak
        if ( $alt_kategori_say > 0 ) {
          kategori_listele($kategori_id);
        }

        echo "</li>";

      }

      echo "</ul>";

    }

    kategori_listele();

    ?>


    <!--  MENÜ İÇİNE SINIRSIZ KATEGORİYİ LİSTELEME BİTTİ   -->
  </li>
  <li><a href="hizmetlerimiz.php">HİZMETLERİMİZ</a><div class="menu-space"></div></li>
  <li><a href="iletisim.php">İLETİŞİM</a><div class="menu-space"></div></li>
</ul>
şimdi benim sorunum şu aşağıdaki kod sayesinde kategorilere link veriyor

Kod:
echo "<li> <a href='urundetay.php?kategori_id=$kategori_id'>$kategori_adi</a>";
ama benim tam olarak istediğim şu her kategoriye link vermesin benim veritabanımda birde ürünler tablom var o tablodada kategoriid kısmı var eğer ürünler tablomdaki kategoriid ile kategoriler tablomdaki kategori_id arasında bir eşleşme olursa link kısmını versin yok eşleşme olmazsa link kısmını # yapabilir.Yani o kategoriye ait ürün varsa linke gitsin istiyorum yoksa gitmesin

Yardımlarınızı bekliyorum.İyi günler İyi çalışmalar.Şimdiden çok teşekkürler.
 

Canpower00

Üyecik
Katılım
12 Şub 2018
Mesajlar
6
Puanları
1
Konum
İstanbul
<?php
if ($kategori_id == 0) {
$link = "#";
} else {
$link = "urundetay.php";
}
?>

tablonda yer alan ürün adı 0 ise # koyucaktır bunu phpmyadmin üzerinden yeri ürün eklediğinde otomatik 0 ekleme yapabilirsin eğer 0 haricinde birşey ise urundetay.php olucaktır
<?php echo "$link" ?> olarak koyabilirsin istediğin yere
 
Üst
stat counter