• 18-04-2020, 12:43:49
    #1
    $MakaleY = $db->query("SELECT y.*,r.id as rid,r.baslik from yorum y inner join resim r on r.id=y.resimid order by y.id desc limit 10");
    $MakaleY = $db->query("SELECT y.*,r.id as rid,r.kulresim,kuladsoyad from yorum y inner join uye r on r.id=y.uyeid order by y.id desc limit 10");
    $MakaleAlY = $MakaleY->fetchAll(PDO::FETCH_ASSOC);


    Arkadaşlar üstteki sorgu ile yorum tablosundan yorumları çekiyorum ve resim tablosundaki başlığı dahil ediyorum.
    Alttaki ile ise kullanıcı avatarı ve ismini çekiyorum.

    Ne varki ikisi birlikte çalışmıyor 2. satırı eklediğimde başlık görünmüyor iki satırı birleştirmek gerek sanırım. Karantina da canı sıkılan PHP uzmanlarının yardımına ihtiyaç var.

    Lütfen parayla yaparım diyen arkadaşlar cevap yazmasın.

    Selamlar..
  • 18-04-2020, 12:47:39
    #2
    Merhaba,
    Bence bunun 2 tür yolu var.

    Yol 1: MySQL ile Select UNION özelliğini kullanarak iki tabloyu tek satırda birleştirmeniz.
    Örnek: https://www.w3schools.com/sql/sql_union.asp

    Yol 2: $makale1 ve $makale2 diye ayrı ayrı değişken adı verin ve bunu bir array içerisinde birleştirip kullanın.
  • 18-04-2020, 12:58:40
    #3
    Malesef o kadar bilgim yok.

    Aşağıdaki gibi bir şeyler yaptım çalışıyor ama emin değilim saçma bir yöntem olabilir gibi geliyor.

    <?php
    require 'header.php';

    $MakaleY = $db->query("SELECT y.*,r.id as rid,r.baslik from yorum y inner join resim r on r.id=y.resimid order by y.id desc limit 10");
    $MakaleAlY = $MakaleY->fetchAll(PDO::FETCH_ASSOC);

    $MakaleY2 = $db->query("SELECT y.*,r.id as rid,r.kulresim,kuladsoyad from yorum y inner join uye r on r.id=y.uyeid order by y.id desc limit 10");
    $MakaleAlY2 = $MakaleY2->fetchAll(PDO::FETCH_ASSOC);
    ?>





    <div class="col-lg-6">

    <?php foreach($MakaleAlY as $MakaleCekY){?>
    <?php foreach($MakaleAlY2 as $MakaleCekY2){?>

    Yorum: <?php echo $MakaleCekY['yorum']; ?>


    Başlık: <?php echo $MakaleCekY['baslik']; ?>


    Kullanıcı adı: <?php echo $MakaleCekY2['kuladsoyad']; ?>
    Kullanıcı resmi: <?php echo $MakaleCekY2['kulresim'] ?>

    <?php } ?>
    <?php } ?>

    </div>



    @GundogduYakici;

    Edit: yok düzgün çalışmıyormuş aynı yorumları farklı üyelerde defalarca yapmış gibi bir durum olmuş..
  • 18-04-2020, 13:30:47
    #4
    SELECT y.*, r.id as rid, r.baslik, u.id as uid, u.kulresim, u.kuladsoyad
    from yorum y
    inner join resim r on r.id = y.resimid
    inner join uye u on u.id = y.uyeid
    order by y.id desc limit 10
    Bu şekilde dene fakat inner join lere dikkat etmelisin diğer tablolarda veri eksikse yorumlarda görünmeyebilir.Kullandığın yapıya göre left join de kullanabilirsin.
  • 18-04-2020, 13:39:06
    #5
    ByMchts adlı üyeden alıntı: mesajı görüntüle
    SELECT y.*, r.id as rid, r.baslik, u.id as uid, u.kulresim, u.kuladsoyad
    from yorum y
    inner join resim r on r.id = y.resimid
    inner join uye u on u.id = y.uyeid
    order by y.id desc limit 10
    Bu şekilde dene fakat inner join lere dikkat etmelisin diğer tablolarda veri eksikse yorumlarda görünmeyebilir.Kullandığın yapıya göre left join de kullanabilirsin.
    Teşekkürler arkadaşım oldu. Böyle kodları biraz anlıyacağımız gibi döktünüz mü tadından yenmiyor

    Şurada çözemediğim benzer bir sorunum daha var vaktin olursa göz atabilirsen memnun olurum.

    Üstteki kodla aynı aslında sorun, yukarıda tüm yorumları sıralıyor aşağıdaki sorunda belli bir üyenin yorumlarını sıralasın istiyorum. Yukarıda verdiğin koda koda WHERE uyeid=$id bunu eklesek işimi görecek gibi..


    Şu sonucu vermesi gerekiyor..






    https://www.r10.net/php/2313294-php-sorgu-yardim-lutfen.html#post1076778279
  • 18-04-2020, 15:38:08
    #6
    SELECT y.*, r.id as rid, r.baslik, u.id as uid, u.kulresim, u.kuladsoyad
    from yorum y
    inner join resim r on r.id = y.resimid
    inner join uye u on u.id = y.uyeid
    where y.uyeid = $id
    order by y.id desc limit 10
    Üyeye ait son 10 yorum limiti kaldırırsan hepsi
  • 18-04-2020, 15:44:22
    #7
    ByMchts adlı üyeden alıntı: mesajı görüntüle
    SELECT y.*, r.id as rid, r.baslik, u.id as uid, u.kulresim, u.kuladsoyad
    from yorum y
    inner join resim r on r.id = y.resimid
    inner join uye u on u.id = y.uyeid
    where y.uyeid = $id
    order by y.id desc limit 10
    Üyeye ait son 10 yorum limiti kaldırırsan hepsi
    Eyvallah. Elli tane yöntem denedim olmamıştı