Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
8
Cevap
930
Tıklama
0
Öne Çıkarma
Bu Alanları Nasıl Eşleştiririm (Resimli)
L
15 yıl
Çavuş
Konu Sahibi

Merhaba, genelde takıldığım bir konuda daha soru sormak istiyorum. Veritabanım 3 tabloya ayrılmış durumda.
1. tabloda üyeler
2. tabloda olaylar
3. tabloda ise olayların detayları var.

İsteğim ise tam olarak şudur. Üyeler tablosundaki üye id numarasına bakarak, olaylar tablosunda üye id numarasına eşit olan alanı bulacak. Daha sonra ise üye id alanıyla aynı alanda olan olayın detayını olay detay tablosundan çekecek. Ve o alana eşit olan kolonu ekrana yazdıracak.

< Resime gitmek için tıklayın >

< Resime gitmek için tıklayın >

$bul = mysql_fetch_array(mysql_query("select * from veri_olaylar where uye_no= {$_SESSION['uyeid']} LIMIT 1"));


Bu yukarıdaki ve buna benzer onlarca kod denedim fakat hiçbir şekilde eşitlemeyi başaramadım. Aldığım hata hep array hatası oldu. Bu konuda yardımlarınızı beklemekteyim.
Olay kısaca şu üye siteye giriş yaptığı anda gerekli eşleştirmelerden geçip en son olay_detay sayfasındaki üyenin ıdsinin olayına denk gelen olayın tarihi yazılacak.
Bir üyenin birden fazla olayı olabilir bu sorun değil.
Bu işin içinden bir türlü çıkamadım yardımlarınızı beklemekteyim. Abartı istek değildir, detaylı ve anlaşılabilir olsun diye uzun yazdım. Teşekkürler.





< Bu mesaj bu kişi tarafından değiştirildi lalatosunpasa -- 28 Kasım 2010; 5:48:27 >

M
15 yıl
Yüzbaşı

bir dener misin?
	 
$query = sprintf("
SELECT veri_aolay_detay.tarih1, veri_aolay_detay.tarih2, veri_olaylar.uye_no, veri_uyeler.uye_adi
FROM veri_aolay_detay
JOIN veri_olaylar ON veri_aolay_detay.olay_id = veri_olaylar.olay_id
JOIN veri_uyeler ON veri_olaylar.olay_id = veri_uyeler.uye_id
WHERE veri_olaylar.uye_no = '%s'"
, $_SESSION['uye_id']
);

$dizi = mysql_query( $query );





< Bu mesaj bu kişi tarafından değiştirildi Magnussen -- 28 Kasım 2010; 12:46:47 >
Bu mesaja 1 cevap geldi.
L
15 yıl
Çavuş
Konu Sahibi

Şu an iş yerimdeyim eve gidince derhal deneyeceim, teşekkür ederim yalnış anlamazsanz bir soru soracağım. Biraz karışık değil mi ? Mesela veri_aolay_detay.tarih3 diye bir alan benim veritabanımda yok. Acaba bir fazlalık mı söz konusu ?





< Bu mesaj bu kişi tarafından değiştirildi lalatosunpasa -- 28 Kasım 2010; 12:37:21 >
Bu mesaja 1 cevap geldi.
M
15 yıl
Yüzbaşı

evet sanırım o fazlalık oldu, yukarıdaki açıklamada 3 tarih geçince tarih3 isimli alanın olduğunu varsayarak yazmıştım. zaten o kısımdakiler veritabanından çekilecek alanları temsil ettiği için o kısmı silmek yeterli. ben kodları yine de güncelledim.


Bu mesaja 1 cevap geldi.
L
15 yıl
Çavuş
Konu Sahibi

Maalesef kod çalışmadı, doğrudan eklediğimde ve değişimleri yaptığımda hiçbir şey olmadı.
Zaten ekrana yazdıran koduda göremedim. $dizi değeri ekrana yazdırır mı bilmiyorum.
Sistem kod olarak değilde bu kodu düz yazı olarak algıladı ve kodları ekrana yazdırdım. Başına query takısı vesaire eklediğimde de hata verdi yani hiçbir şekilde çalıştıramadım :)


Bu mesaja 1 cevap geldi.
M
15 yıl
Yüzbaşı

kodun çalışıp çalışmadığını teyit etmek için şu kodları bir dener misin;

 
while ( $row = mysql_fetch_object( $dizi ) )
{
echo $row->tarih1 . '<br />';
echo $row->uye_no . '<br />';
echo $row->uye_adi;
}


Bu mesaja 1 cevap geldi.
L
15 yıl
Çavuş
Konu Sahibi

Maalesef onuda bir çok şekilde denememe rağmen başarısız.

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in


Bu mesaja 1 cevap geldi.
I
15 yıl
Yüzbaşı

olaylar tablosundan yalnızca bu kişinin hareket kayıtlarını
içteki select ile getirelim. olay_id anahtar olacak.
olay_detay kayıtlarından da, ayrıntı kayıtlarına erişelim :
(ID nosu belli bir kişinin, en son olay kaydının tarihi)

$sql = " 
select * from veri_aolay_detay
where olay_id IN
( select olay_id from veri_olaylar where uye_no= $uyeid)
order by tarih1 DESC, tarih2 DESC
";
$sonuc = mysql_query($sql);
// şimdi elimizde aolay tablosundan dönen (azalan tarihler sırasında) 3 kayıt var.
// 1. kayıt bu kişinin enson işlem yaptığı kayıttır :
$row = mysql_fetch_assoc($sonuc);

echo $row['tarih1']; ... şeklinde bu kaydı kullanabilirsin.


Bu mesaja 1 cevap geldi.
Z
15 yıl
Binbaşı

SELECT veri_uyeler.* , veri_olaylar.* , veri_aolay_detay.* FROM veri_uyeler , veri_olaylar , veri_aolay_detay WHERE veri_uyeler.uye_id = '1' AND veri_olaylar.uye_id = veri_uyeler.id AND veri_olaylar.olay_id = veri_aloay_detay.olay_id



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.