v2.5.2
Giriş yap

PHP/PDO ile son konuları ve yorum yapılan konuları listeleme hakkında

mek
848 defa görüntülendi

Php / Pdo ile birlikte bir oyun platformu için her şeyin içerisinde olduğu bir sistem üzerinde çalışıyorum. Bunun yanına ek olarak forum sistemini ekledim fakat istatistikler kısmında son konuları listeleyip gelen yanıtları listeleyemiyorum. Açık konuşmak gerekirse mantığım nasıl bir şey yapmam gerektiği konusunda bir şeyleri doğru söylemiyor. Nasıl bir sorgu yazarsan bu içerikleri beraber listeleyebilirim?

Listelemek istediğim şekil:

YNT: Yeni Konu
Yeni Konu

Şeklinde.

Listeleme Şekli:

Konu Tablosu:

Yorum Tablosu:

Yardım edemeyecekseniz bile en azından mantığımın doğru çalışması için önerilerde bulunursanız çok memnun olurum.

omeryallcnn
1242 gün önce

Merhaba yapmak istediğin olay tam olarak bu mu?

Burdaki gibi son eklenen konunun üzerine, o konuya gelen son yanıtları göstermek mi?

Eğer yapmak istediğin tam olarak bu ise.

  <body>
    <?php
      $yeniEklenenKonular = $db->prepare("SELECT topics.topic_id, topics.topic_name, users.user_nickname, categories.category_name FROM
        topics INNER JOIN users ON topics.user_id = users.user_id INNER JOIN categories ON topics.category_id = categories.category_id ORDER BY topics.lastdate DESC");

      $yeniEklenenKonular->execute();
    ?>

    <?php foreach($yeniEklenenKonular as $row): ?>
      <?php
        $yeniYanit = $db->prepare("SELECT comments.*, topics.topic_name, users.user_nickname FROM comments INNER JOIN topics ON
          comments.topic_id = ? INNER JOIN users ON comments.user_id = users.user_id WHERE comments.topic_id = topics.topic_id ORDER BY comments.last_date DESC LIMIT 3");

        $yeniYanit->execute([$row["topic_id"]]);

        foreach($yeniYanit as $yanitRow):
       ?>

       <p>Yanıt : <a href="#"> <?php echo $yanitRow["topic_name"]; ?> </a>  - (Kullanıcı adı : <a href="#"><?php echo $yanitRow["user_nickname"]; ?></a> )</p>

     <?php  endforeach; ?>

      <p><a href="#"><?php echo $row["topic_name"]; ?></a> Ekleyen : <a href="#"><?php echo $row["user_nickname"]; ?></a> (<?php echo $row["category_name"]; ?>)</p>
    <?php endforeach; ?>
  </body>

Bu şekilde yapmak mümkün, yeniYanit sorgusundaki LIMIT ifadesi ile o konuya son eklenen kaç yorumu getirmek istediğini belirleyebilrsin ben örnek olarak son 3 yorumu getirsin dedim.

Temsili olarak users tablomun yapısı bu şekilde: