• 13-08-2022, 03:19:53
    #1
    Herkese merhaba,

    uyeler isimli tablomda kullanıcı adı(ad_soyad) kolonu mevcut.
    mesajlar isimli ikinci tablomda ise gönderen(uye_id) ve alıcı(kime) kolonları yer alıyor.

    Bu iki tablodaki verileri birleştirerek id yerine üyelik isimlerini görmek istiyorum. "üye id" ve "kime" kolonları rakam değil üyelik adı yazsın istiyorum. Aşağıda yer alan şekilde yazdığımda "uye_id" yani gönderen kısmına üye ismini getirebiliyorum. ancak "kime" yani gönderilen kişinin adını bir türlü getiremedim. İki kısımda da gönderen kişinin adı yazıyor.

                                   <?php
                                    $sql=mysqli_query($baglan,"select * from uyeler, mesajlar where mesajlar.uye_id=uyeler.id limit 0,20");
                                    while ($dizi=mysqli_fetch_array($sql)) {
                                        $uye_id=$dizi["ad_soyad"];
                                        $kime=$dizi["adsoyad"];
                                        $mesaj=$dizi["mesaj"]; ?>
                                        <tr>
                                            <td><?php echo $uye_id; ?></td>
                                            <td><?php echo $kime; ?></td>
                                            <td><?php echo $mesaj; ?></td>
                                         </tr>
                                    <?php } ?>
    Eğer kodu uye_id yerine kime olarak değiştirirsem,
    $sql=mysqli_query($baglan,"select * from uyeler, mesajlar where mesajlar.kime=uyeler.id limit 0,20");
    busefer her iki bölümde de gönderilen üyenin adını getiriyor.

    $uye_id=$dizi["ad_soyad"];
    $kime=$dizi["ad_soyad"];

    Yukarıda belirttiğim şekilde kime ve uye_id kolonları aynı tablo içerisinde yer alıyor.
    Bu iki kodu ne şekilde birleştirebileceğim hususunda yardıma ihtiyacım var.
  • 13-08-2022, 03:40:28
    #2
    sorguyu birde bu şekil denermisin


    $sql=mysqli_query($baglan,"
    SELECT * FROM  uyeler 
    INNER JOIN mesajlar 
    ON mesajlar.uye_id  = uyeler.id
    ");
  • 13-08-2022, 03:43:39
    #3
    işinizi görmesi lazım;

    SELECT m.*, w.ad_soyad AS kimden, t.ad_soyad AS kime 
        FROM mesajlar m 
            INNER JOIN uyeler w ON w.id = m.uye_id 
            INNER JOIN uyeler t ON t.id = m.kime
    LIMIT 0, 20
  • 13-08-2022, 13:04:17
    #4
    Darkbey adlı üyeden alıntı: mesajı görüntüle
    sorguyu birde bu şekil denermisin


    $sql=mysqli_query($baglan,"
    SELECT * FROM  uyeler
    INNER JOIN mesajlar
    ON mesajlar.uye_id  = uyeler.id
    ");
    Hocam maalesef sonuç değişmedi. Mantık olarak aynı sonuca çıkıyor zaten bu durumda uyeler.id yi yanlızca mesajlar.uye_id ile eşitlemiş oluyoruz.
    uyeler.id yi hem mesajlar.uye_id hemde mesajlar.kime ile eşitlememiz gerekecek. fakat kafam durdu beceremiyorum.
  • 13-08-2022, 13:27:13
    #5
    ghergedan adlı üyeden alıntı: mesajı görüntüle
    işinizi görmesi lazım;

    SELECT m.*, w.ad_soyad AS kimden, t.ad_soyad AS kime
        FROM mesajlar m
            INNER JOIN uyeler w ON w.id = m.uye_id
            INNER JOIN uyeler t ON t.id = m.kime
    LIMIT 0, 20
    Hocam destek için teşekkür ederim ancak bunu beceremedim. Fakat yapı olarak sanırım benim durumdan farklı.
    Bir tablonun için de id ve ad soyad var, diğer tablonun içinde id, kime ve gonderen kısımları var. kime ve gonderen kısımları aynı tabloda olduğundan beceremedim aslında.

    tablo yapısını da paylaşıyorum;






    burada mesajlar tablosundaki uye_id ve kime kısımlarına uyeler tablosundaki id den eşleştirerek ad_soyad yazdırmak istiyorum.
  • 13-08-2022, 14:28:25
    #6
    sorgunun tam olarak çalışıyor olması lazım. $sonuc[‘kime’] ve $sonuc[‘kimden’] ile üyelern isimlerine ulaşabilirsiniz.

    SelimD adlı üyeden alıntı: mesajı görüntüle
    Hocam destek için teşekkür ederim ancak bunu beceremedim. Fakat yapı olarak sanırım benim durumdan farklı.
    SelimD adlı üyeden alıntı: mesajı görüntüle
    Bir tablonun için de id ve ad soyad var, diğer tablonun içinde id, kime ve gonderen kısımları var. kime ve gonderen kısımları aynı tabloda olduğundan beceremedim aslında.

    tablo yapısını da paylaşıyorum;






    burada mesajlar tablosundaki uye_id ve kime kısımlarına uyeler tablosundaki id den eşleştirerek ad_soyad yazdırmak istiyorum.
  • 13-08-2022, 14:31:15
    #7
    ghergedan adlı üyeden alıntı: mesajı görüntüle
    sorgunun tam olarak çalışıyor olması lazım. $sonuc[‘kime’] ve $sonuc[‘kimden’] ile üyelern isimlerine ulaşabilirsiniz.

    [COLOR=transparent]
    Tekrar denedim hocam maalesef çekmiyor isimleri
  • 13-08-2022, 14:33:27
    #8
    ghergedan adlı üyeden alıntı: mesajı görüntüle
    sorgunun tam olarak çalışıyor olması lazım. $sonuc[‘kime’] ve $sonuc[‘kimden’] ile üyelern isimlerine ulaşabilirsiniz.

    [COLOR=transparent]
    tamam hallettim hocam. Desteğin için çok teşekkür ederim.