lostyazilim
tr.link

3'lü Tablo Birleştirme

5 Mesajlar 1.101 Okunma
acebozum
tr.link

sufyani sufyani WM Aracı Kullanıcı
  • Üyelik 23.11.2017
  • Yaş/Cinsiyet 54 / E
  • Meslek Grafik Tasarımcı / Coder
  • Konum İstanbul Anadolu
  • Ad Soyad S** B**
  • Mesajlar 101
  • Beğeniler 7 / 6
  • Ticaret 0, (%0)
Merhaba bu sorgudaki hata nedir acaba?

$id=$_GET[ "id" ];
$sorgu = $db->prepare("SELECT * FROM
table1
INNER JOIN
table2

AS
table1
INNER JOIN
table3

ON
table1.kimlik = table3.kimlik

ON
table1.barkod = table2.barkod

where id=?");


$sorgu-> execute(array($id));
$row = $sorgu->fetch(PDO::FETCH_ASSOC);
$x = $sorgu->rowCount();

echo $row['kimlik'].' '.$row['barkod'];
?>


Fatal error: Uncaught Error: Call to a member function prepare() on null in /home/xxxxxxxx/public_html/admin/xxx.php:3 Stack trace: #0 {main} thrown in /home/xxxxxx/public_html/admin/xxxxx.php on line 3

Yardımlarınız için şimdiden teşekkür ederim.
 

 

elektronikssl
webimgo

Abdullahx Abdullahx MW Aracı Kullanıcı
  • Üyelik 03.04.2019
  • Yaş/Cinsiyet 29 / E
  • Meslek .
  • Konum Trabzon
  • Ad Soyad A** K**
  • Mesajlar 905
  • Beğeniler 393 / 395
  • Ticaret 3, (%100)
Veri tabanı bağlantı hatası büyük ihtimal
 

 


sametweb sametweb WM Aracı Kullanıcı
  • Üyelik 29.08.2011
  • Yaş/Cinsiyet 34 / E
  • Meslek software developer
  • Konum ABD
  • Ad Soyad S** M**
  • Mesajlar 615
  • Beğeniler 52 / 196
  • Ticaret 1, (%100)
Vertabanı şemanı görmeden bilemeyiz bu sorgudaki problemin ne olduğunu.

SELECT * FROM table1 // table1'dan herseyi sec
INNER JOIN table2 //table2 ye bagla
AS table1 //table2'yi table1 olarak isimlendir
INNER JOIN table3 //table3'u de bagla
ON table1.kimlik = table3.kimlik //table1 deki kimlik ile table3 deki kimlik esitliginde
ON table1.barkod = table2.barkod //table1 deki barkod ile table2 deki barkod esitliginde
where id=?


Gördüğüm kadarıyla birinci yanlış AS kullanımıyla alakalı.

İkincisi ise, her bir JOIN table_name'den sonra ON gelmeli. İki tane JOIN olacaksa her bir ON ifadesi JOIN'den hemen sonra gelmeli. Şöyle deneyin:

SELECT * FROM table1 AS t1
INNER JOIN table2 AS t2
ON t1.barkod = t2.barkod
INNER JOIN table3 as t3
ON t1.kimlik = t3.kimlik
where id=?
 

 

React Dersleri YouTube Kanalı
https://www.youtube.com/c/reactdersleri

sufyani sufyani WM Aracı Kullanıcı
  • Üyelik 23.11.2017
  • Yaş/Cinsiyet 54 / E
  • Meslek Grafik Tasarımcı / Coder
  • Konum İstanbul Anadolu
  • Ad Soyad S** B**
  • Mesajlar 101
  • Beğeniler 7 / 6
  • Ticaret 0, (%0)

include('../../ayar.php');
$id=$_GET[ "id" ];
$sorgu = $db->prepare("SELECT * FROM
lgs_import20 AS t1
INNER JOIN
lgs_konu20 AS t2
ON
t1.barkod = t2.barkod
INNER JOIN
uyeler AS t3
ON
t1.std_id = t3.std_id
where id=?");

$sorgu-> execute(array($id));
$row = $sorgu->fetch(PDO::FETCH_ASSOC);
$x = $sorgu->rowCount();

echo $row['std_id'].' '.$row['barkod'];

?>


Fatal error: Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'id' in where clause is ambiguous in /home/xxx/public_html/admin/xxx/xxx/xxx.php:16 Stack trace: #0 /home/xxx/public_html/admin/xxx/kxxx/xxx.php(16): PDOStatement->execute(Array) #1 {main} thrown in /home/xxx.com/public_html/admin/xxx/xxx/xxx.php on line 16

Bu şekilde bir sonuç aldım.
 

 

wmaraci
wmaraci

sufyani sufyani WM Aracı Kullanıcı
  • Üyelik 23.11.2017
  • Yaş/Cinsiyet 54 / E
  • Meslek Grafik Tasarımcı / Coder
  • Konum İstanbul Anadolu
  • Ad Soyad S** B**
  • Mesajlar 101
  • Beğeniler 7 / 6
  • Ticaret 0, (%0)
Konu günceldir.
 

 

wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al