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Ü
