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.
$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 >
Ş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 ?
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.
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 :)
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.
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 >
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 >