Şimdi Ara

Bu Alanları Nasıl Eşleştiririm (Resimli)

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
9
Cevap
0
Favori
840
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • 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 >







  • 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 >
  • Ş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 >
  • 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 :)
  • 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;
    }
  • 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
  • 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.
  • 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
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.