Merhaba benım sorunum 3 farklı tablodan ortak bilgileri ilişkilendirip ekrana yazdırmak .Şu şekilde acıklayım
tablo 1
id ve adi
tablo 2
id tablo1id ve adi
tablo3
id tablo1id tablo2id tablo2id
fazla yer kaplamasın diye değerleri sınıflandırıp isimlerine id verdim ve tablo 3 e id lerini kayıt ettim .Ekrana yazıdırıken veri tabanı sorrgulaması yaptıgımda id ler geliyor diğer tablolardan o id nini adini ekrana nasıl yazdırırım .Buraya yazmadan önce cok arastırdım ama 2 tabloyu birleştirme ile ilgili örnekler buldum.Yardım Edebilirseniz Sevinirim .
Farklı 3 tablodan ortak Sorgulama yapmak
8
●739
- 31-10-2010, 00:14:00mysql JOIN ve union select i okumanı tavsiye ederim.
mesela ogrenci tablosu no,ad,soyad
dersler id,ogrenci_no,ogretmen(foreign key ogrenci no,ogretmen)
ogretmen id,ad,soyad,
gibi tablolarda join ile bağlayabilirsin , hangi tabloyu birbirine bağlayacağın sana kalmış veritabanı yapınıda bu ilişkilere gore yapmalısın. relational database in php diye google la istersen.
örnek kodda istersen.
SELECT * FROM ogrenci LEFT JOIN (desler,ogretmen) ON (dersler.ogrenci_no=ogrenci.no AND dersler.ogretmen=ogretmen.id)bu tarz bişi 3 tabloyu biribirine bağlamana yardım eder hızlı yazdım yanlış olabilir. mantığı bu şekilde - 31-10-2010, 11:54:38Eposta Aktivasyonu GerekmekteTablo3'te tablo1 ve tablo2 'nin idlerini tutuyorsun ama tablo2'de neden tablo1'in idsinide tuttun anlamadım. Yada neden tablo3'te tablo1 ve 2nin id'sini tutun o zaman onu anlamadım.
inner join ile yapabilirsin
$sql = "Select t1.adi as 't1Adi',t2.adi as 't2Adi' From tablo1 as t1 inner join tablo2 as t2 on t1.id=t2.tablo1id Where t1.id='$ID'"; $query = mysql_query($sql) or die (mysql_error()); $assoc = mysql_fetch_assoc($query); echo 'Tablo1\'deki kişinin Adı : ' . $assoc['t1Adi']; echo 'Tablo2\'deki kişinin Adı : ' . $assoc['t2Adi'];
- 31-10-2010, 19:02:59Eposta Aktivasyonu Gerekmekte
$sql = "Select t1.adi as 'ogretmenAdi',t2.dersadi as 'dersAdi',t3.ders2 as 'ders2' From ogretmenler as t1 inner join dersler as t2 on t1.id=t2.ogretmenid inner join ogrenciler as t3 on t3.ogretmenid=t1.id Where t3.id='$ogrenciID'";
İstediğin sorgu bu şekilde. Anlaman için tablo alanlarına göre düzenledim. İsim farklılıklarını kendine göre uyarlamalısın.