Eski 23-02-09, 12:46 #1
ankizor ankizor çevrimdışı

bynogame
Varsayılan tek MYSQL sorgusu ile iki tabloya bağlanmak nasıl?

bynogame
tek MYSQL sorgusu ile iki tabloya bağlanabilirmiyiz?
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 23-02-09, 13:09 #2
BaD`BoY BaD`BoY çevrimdışı

bynogame
Varsayılan C: tek MYSQL sorgusu ile iki tabloya bağlanmak nasıl?

bynogame
kısaca değinmek gerekirse iki ayrı tabloda bulunan 2 aynı veriyi karşılaştırıp (eşitlemek için) SQL SELECT kodu

SELECT tablo1,tablo2 where tablo1.id=tablo2.id

şeklinde olmalıdır
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 23-02-09, 16:51 #3
ankizor ankizor çevrimdışı

bynogame
Varsayılan C: tek MYSQL sorgusu ile iki tabloya bağlanmak nasıl?

bynogame
şu şekilde birsorgu denedim hata verdi

SELECT frm_mesaj,frm_konu WHERE frm_mesaj.id=frm_konu.baslik AND frm_mesaj.yazan='$oturum_id' GROUP BY frm_mesaj.baslik ORDER BY frm_konu.tarih DESC

anlaşılır olsun diye renkli gösterdim
kırmızı: birinci tablo
mavi: ikinci tablo
kahverengi: birinci tablonun sütunu
mor: ikinci tablonun sütunu

problem neden kaynaklanır?
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 23-02-09, 19:16 #4
BaD`BoY BaD`BoY çevrimdışı

bynogame
Varsayılan C: tek MYSQL sorgusu ile iki tabloya bağlanmak nasıl?

bynogame
frm_mesaj.id=frm_konu.baslik >>> id ile baslik esitlemişsin, baslik kismin rakam mı ?
frm_mesaj.yazan='$oturum_id' >>> yazan ile id eşitlemissin, ikisi de rakam mı ?

bir de aldığın hata nedir.
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 23-02-09, 21:45 #5
ankizor ankizor çevrimdışı

bynogame
Varsayılan C: tek MYSQL sorgusu ile iki tabloya bağlanmak nasıl?

bynogame
frm_konu tablosundaki "baslik" sütunu sayı değil ki zaten orayı yanlış yazmışım
frm_mesaj.baslik = frm_konu.id şeklinde doğru olanı ve ikiside sayı
yazan sütunuda sayı oturum_id değişkeni zaten sayı

düzelttim ve yine hata verdi:
SELECT frm_mesaj,frm_konu WHERE frm_mesaj.baslik=frm_konu.id AND frm_mesaj.yazan='$oturum_id' GROUP BY frm_mesaj.baslik ORDER BY frm_konu.tarih DESC

aldığım hata şudur:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:\php_localhost\kphp\forum.php on line 1243
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 23-02-09, 22:34 #6
BaD`BoY BaD`BoY çevrimdışı

bynogame
Varsayılan C: tek MYSQL sorgusu ile iki tabloya bağlanmak nasıl?

bynogame
from kısmını da ekleyin,
http://www.r10.net/php/308791-iki-fa...ti-kurmak.html
bi de şu konuya bi göz atın isterseniz.
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 23-02-09, 23:22 #7
ankizor ankizor çevrimdışı

bynogame
Varsayılan C: tek MYSQL sorgusu ile iki tabloya bağlanmak nasıl?

bynogame
teşekkürler inceledim ve şu şekilde denedim:
SELECT msj.baslik, msj.yazan, knu.* FROM frm_mesaj msj, frm_konu knu WHERE msj.baslik=knu.id AND msj.yazan='$oturum_id'

ben frm_mesaj tablosundaki verileri dizicem, yukardai SQL bunu yapmıyor mu?
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 23-02-09, 23:25 #8
ankizor ankizor çevrimdışı

bynogame
Varsayılan C: tek MYSQL sorgusu ile iki tabloya bağlanmak nasıl?

bynogame
Bad boy çok teşekkürler yardımların için
sorunu çözdüm
knu.* dan hata veriyormuş en son
bu şekilde oldu:
SELECT msj.baslik, msj.yazan, knu.tarih, knu.id FROM frm_mesaj msj, frm_konu knu WHERE msj.baslik=knu.id AND msj.yazan='$oturum_id' GROUP BY msj.baslik ORDER BY knu.tarih DESC
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 23-02-09, 23:33 #9
BaD`BoY BaD`BoY çevrimdışı

bynogame
Varsayılan C: tek MYSQL sorgusu ile iki tabloya bağlanmak nasıl?

bynogame
sevindim çözdüğüne ,
SELECT msj.baslik, msj.yazan, knu.* FROM frm
burada * işareti hata dır , ya yıldızı koyarsın ( tümünü seç demektir) ya da doğrudan tablo isimlerini yazarsın (performans açısından )...

kolay gelsin ...
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Cevapla

Bu konunun kısa yolunu aşağıdaki sitelere ekleyebilirsiniz

Konu Araçları

Gönderme Kuralları
Yeni konu açamazsınız
Cevap yazamazsınız
Dosya gönderemezsiniz
Mesajlarınızı düzenleyemezsiniz

BB code is Açık
Smiley Açık
[IMG] kodu Açık
HTML kodu Kapalı



Tüm saatler GMT +3. Şuan saat: 12:40
(Türkiye için artık GMT +3 seçilmelidir.)

 
5651 sayılı yasaya göre forumumuzdaki mesajlardan doğabilecek her türlü sorumluluk yazan kullanıcılara aittir. Şikayet Mailimiz. İçerik, Yer Sağlayıcı Bilgilerimiz. Tatil


bynogame