PHP PROGRAMLAMA KURSU : PHP PDO İLE SINIRSIZ ALT KATEGORİ OLUŞTURMA

PHP PDO İLE VERİTABANI BAĞLANTISI YAPMAK

<?php
error_reporting(0);
session_start();
 
try {
      $vt = new PDO ("mysql:host=localhost; dbname=bilshop; charset=utf8", "root", "");
} catch (PDOexception $hata) {
      echo "HATA : ".$hata->getmessage();
}
 
?>
 
--------------------------------------
 
PHP PDO İLE SINIRSIZ ALT KATEGORİ OLUŞTURMA VERİTABANI ÖRNEĞİ
 
 
----------------------
 
PHP PDO İLE SINIRSIZ ALT KATEGORİ OLUŞTURMA FORM SELECT İÇİNE LİSTELEME
 
---------------------
 
 
-----------------------------
 
function kategori_listele($ana_kategori_id,$kategori_id=0,$onek = 0) {
     //Alt Kategori çağıran fonksiyon başladı
     global $vt; //PDO veritabanı değişkenini fonksiyon içinde kullanabilmek için global yaptık. 
 
     $kategoriler = $vt -> prepare ("select * from kategoriler where ana_kategori_id=:kategori_id order by kategori_adi asc");
     $kategoriler -> execute (array("kategori_id"=>$kategori_id));
     while ($dizi = $kategoriler-> fetch (PDO::FETCH_ASSOC)) {
           $ana_kategori_adi = $dizi ["kategori_adi"];
           $kategori_id = $dizi ["kategori_id"]; 
 
           if ($kategori_id==$ana_kategori_id) {
                 $onay = 'selected';
           } else {
                 $onay = '';
           }
 
           $ekle=str_repeat('-', $onek);
           echo "<option value='$kategori_id' $onay>$ekle $ana_kategori_adi</option>";
 
           kategori_listele ($ana_kategori_id,$kategori_id,$onek+3);
      }
     //------------------------------------
 
}
 
-------------------------
 
<select name="ana_kategori_id" id="ana_kategori_id">
          <option value="0">Seç</option>
           <?php
                kategori_listele($ana_kategori_id)            
           ?>
</select>
 
---------------------------------

SINIRSIZ ALT KATEGORİYİ SİTENİN ÖN YÜZÜNDEKİ MENÜDE GÖSTERMEK

<div id="header_menu">

      <ul>
            <li> <a href="index.php"> <i class="fa fa-home"></i> Anasayfa</a> </li>
            <li> <a href="hakkimizda.php"> <i class="fa fa-info-circle"></i> Hakkımızda</a> </li>
            <li> <a href="#"> <i class="fa fa-shopping-bag"></i> Ürünlerimiz</a> 
            
             <!--  MENÜ İÇİNE SINIRSIZ KATEGORİYİ LİSTELEME BAŞLADI   -->            
 
             <?php
                function kategori_listele($kategori_id=0){
                    
                    global $vt;
                    
                    $kategori_listele = $vt -> prepare ("select kategori_id, ana_kategori_id, kategori_adi from kategoriler where ana_kategori_id=:kategori_id and durum=1 order by kategori_adi asc");
                    $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='#'>$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 = $vt -> prepare ("select * from kategoriler where ana_kategori_id=:kategori_id order by kategori_adi asc");
                        $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="#"> <i class="fa fa-user-plus"></i> Üyelik</a> 
                <ul>
                    <li> <a href="#">Üye Ol</a> </li>
                    <li> <a href="#">Üye Girişi</a> </li>
                    <li> <a href="#">Sepetim</a> </li>
                    <li> <a href="#">Profil</a> </li>
                    </ul>                
                </li>
            <li> <a href="#"> <i class="fa fa-file-text-o"></i> Mesaj Formu</a> </li>
            <li> <a href="#"> <i class="fa fa-phone"></i> İletişim</a> </li>
      </ul>
</div>
 
 
---------------------------------------
 
SINIRSIZ ALT KATEGORİYİ SİTENİN ÖN YÜZÜNDEKİ MENÜDE GÖSTERMEK EKRAN GÖRÜNTÜSÜ
 

 

 

Telefon
Whatsapp