v2.5.2
Giriş yap

PHP Array Veri Çekme

ynscnr55
146 defa görüntülendi

Merhabalar. PHP PDO İle bir site hazırlıyorum sorum şöyledir.

bkategoriler tablom içerisinde sube adında bir sütunum var. Bu sütuna 1,2,3 diye veriler ekliyorum.

Bunları da users tablomdaki her şubeye ait olan veriler ile eşleştirip yazdırmam lazım. Bunu nasıl yaparım. Yardımcı Olur Musunuz ?

Cevap yaz
Cevaplar (2)
ebykdrms
35 gün önce
$pdo = new PDO('mysql:host=localhost;dbname=veritabani_adi', 'kullanici_adi', 'sifre');

$query = "SELECT bkategoriler.sube, bkategoriler.kategori_adi, users.kullanici_adi  FROM bkategoriler LEFT JOIN users ON bkategoriler.sube = users.sube";

$stmt = $pdo->prepare($query);
$stmt->execute();

$results = $stmt->fetchAll(PDO::FETCH_ASSOC);

foreach ($results as $row) {
    echo "Kategori: " . $row['kategori_adi'] . " - Sube: " . $row['sube'] . " - Kullanıcı: " . $row['kullanici_adi'] . "<br />";
}

SELECT bkategoriler.sube, bkategoriler.kategori_adi, users.kullanici_adi: bkategoriler tablosundan sube ve kategori_adi sütunlarını, users tablosundan da kullanici_adi sütununu al.
FROM bkategoriler: bkategoriler tablosunu temel alarak işlem yap.
LEFT JOIN users ON bkategoriler.sube = users.sube: users tablosunu da şu eşleşmeye göre getir: bkategories'deki sube değeri ile users tablosundaki sube değeri aynı olmalı.

Böylece bkategoriler tablosundaki tüm satırlar döndürülecek.
users tablosunda da bkategoriler.sube = users.sube eşleşmesini sağlayan tüm satırlar, bkategoriler tablosuyla gelen satırlarla birlikte alınacak.
bkategoriler.sube değerinin users.sube ile eşleşmesinin bulunmadığı bir bkategoriler satırı varsa, users tablosundan gelen veriler NULL olarak gelecek.

Birbiriyle aynı olan sütun adları (id, sube gibi) olabileceği için Select * veya Select bkategoriler.*, users.* gibi seçimler yapamayız. Mecburen hangi tablodan hangi sütunları alacağımızı tek tek belirttik.
Peki aynı isimli sütunları almamız gerekseydi? Mesela iki tabloda da id sütunu varsa, o zaman bunları birer takma ad vererek çağırmalıydık.
Örn: SELECT bkategoriler.id, users.id as user_id, ... şeklinde yazarsak bkategoriler'in id sütunu id key'iyle döner. users'taki id değeri ise user_id key'iyle döner.

ynscnr55
34 gün önce

Değerli yorumunuz için teşekkür ederim. Sayenizde hallettim.