18 Nisan 2018 Çarşamba

PHP | PDO ile Inner Join Kullanımı

1 yorum

PHP | PDO ile Inner Join Kullanımı




Inner Join veritabanından 2 tablodan veri çekmemize yarıyor. Yani Konuları çekelim daha sonrada kategorileri çekelim ve bu kategorileri konularla eşitleyelim falan hiç uğraşmaya değmez ve kod fazlalığı için sitemizide biraz yavaşlatmış oluyoruz. Inner join ise kod fazlalığından bizi kurtarıyor ve veritabanından konuları ve kategorileri çekiyor ve de konuların kategorisiyle kategorileri birbirine eşitlemiş oluyoruz kodları görünce daha çok kavramış olursunuz.


Inner Join Kullanımı


Inner Join ilk olarak hangi tablolardan veri çekeceğimizi belirticez ardından birbirine bağlı olan sütunları birbirine eşitleyerek ve birde buna bir koşul belirterek verimizi çekmiş olucaz.

Ben bu makalemde yine bir film ve film kategorisi tablosu kullanıcam.

Film tablomuz;

Film Kategori tablomuz ise;

bu şekilde olacaktır.

Şimdi ilk olarak veritabanımıza bir bağlantı yapalım config.php adında bir dosya oluşturalım ve aşağıdaki kodları açtığınız dosyaya yazalım. (Kendinize göre düzenleyiniz.)

try {
$db = new PDO("mysql:host=localhost;dbname=filmscript;charset=utf8", "root", "root");
} catch ( PDOException $e ){
print $e->getMessage();
}

Inner Join'i içerik çekmede kullanımındaki kodumuza bakalım.

$id = 1; // Kategori ID'si 1 olarak varsayıyoruz.
$filmler = $db->prepare("SELECT * FROM film inner join film_kategori on film_kategori.film_kategori_id = film.film_kategori where film_kategori=? ORDER BY film_id DESC");
$filmler->execute(array($id));
$x = $filmler->fetchAll(PDO::FETCH_ASSOC);
foreach($x as $row){
echo $row["film_kategori_adi"];
}

Kategori ID'si 1 olarak kabul ediyoruz ve film tablomuzda film_kategori'de 1 olanları sayfamıza çekmiş oluyoruz. Daha sonra Inner Join kullanarak film_kategori tablomuzu çekmiş olduk ve film_kategori ile film_kategori_id eşitliyoruz daha sonra kategori adımızı çekerkende film_kategori_adi olarak çekmiş oluyoruz. 

Inner Join kullanımını kısa ve öz bir şekilde anlatmaya çalıştım eğer kafanız karıştı ise veya Inner Join hakkında sorularınız varsa aşağıdaki linklerden veya yorum olarak belirtirseniz yardımcı olabilirim.

İyi günler.

1 yorum :

b2b yazılım vois media