PHP PDO İLE VERİTABANI BAĞLANTISI YAPMAK
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 "
$ekle $ana_kategori_adi
";
kategori_listele ($ana_kategori_id,$kategori_id,$onek+3);
}
//------------------------------------
}
-------------------------
Seç kategori_listele($ana_kategori_id) ?>
---------------------------------
SINIRSIZ ALT KATEGORİYİ SİTENİN ÖN YÜZÜNDEKİ MENÜDE GÖSTERMEK
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 '
- ';
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 "
// 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 "";
}
echo "";
}
kategori_listele();
?>
---------------------------------------
SINIRSIZ ALT KATEGORİYİ SİTENİN ÖN YÜZÜNDEKİ MENÜDE GÖSTERMEK EKRAN GÖRÜNTÜSÜ