Merhaba pdo altyapısına yeni geçtim açıkçası biraz zorlanıyorum.
Aşağıdaki gibi bir tablo yapım var:
kayıtno | kayıt adı | kayıt_acan | kayıt_kapatan| tarih | aciklama
#5 | test | 1 | 5 | 1994 | deneme aciklama
Yukarıda ki yapıya göre
birde kayıt açan ve kapatanları çektiğim bir tablo var.
kullanici_id | isimSoyisim
1 | Ahmet
5 | Mehmet
Döngüyle kayıtları listelediğim bir sayfa mevcut sayfada while döngüsüyle veri tabanından verileri çekiyorum kayıt açan ve kayıt kapatan kişiler bir birinden farklı ama her seferinde yalnızca bir kişiyi çekip acan ve kapatan'a aynı kişiyi yazıyor
Bunu nasıl aşabilirim yardımcı olabilirseniz sevinirim.
PDO'da INNER JOIN kullanımı Hakkında
4
●81
- 02-06-2021, 09:16:352 JOIN kullan.
SELECT * FROM kayitlar INNER JOIN kullanicilar ON kullanicilar.kullanici_id = kayitlar.kayit_acan INNER JOIN (SELECT kullanici_id, isimSoyisim AS kayitKapatan FROM kullanicilar) AS kullanicilar_temp ON kullanicilar_temp.kullanici_id = kayitlar.kayit_kapatan
- 02-06-2021, 11:53:46LEFT JOIN ile uyeler tablonuzu hem kayitacan hem kayitkapatan sütunları için iki defa bağlayın. Aşağıdaki örnek çalışan örnektir.
<?php $sth = $db->prepare("SELECT k.kayitno, k.kayitadi, u.isimSoyisim as kayit_acan, u2.isimSoyisim as kayit_kapatan, k.tarih, k.aciklama FROM kayitlar as k LEFT JOIN uyeler as u on (u.kullanici_id = k.kayit_acan) LEFT JOIN uyeler as u2 on (u2.kullanici_id=k.kayit_kapatan) ORDER BY k.kayitno ASC"); $sth->execute(); echo '<table><tr><th>Kayıt No</th><th>Kayıt Adı</th><th>Kayıt Açan</th><th>Kayıt Kapatan</th><th>Tarih</th><th>Açıklama</th></tr>'; foreach($sth->fetchAll(PDO::FETCH_OBJ) as $kayit){ echo '<tr>'; echo '<td>'. $kayit->kayitno. '</td>'; echo '<td>'. $kayit->kayitadi. '</td>'; echo '<td>'. $kayit->kayit_acan. '</td>'; echo '<td>'. $kayit->kayit_kapatan. '</td>'; echo '<td>'. $kayit->tarih. '</td>'; echo '<td>'. $kayit->aciklama. '</td>'; echo '</tr>'; } echo '</table>';