v2.5.2
Giriş yap

Yorum Cevaplandırma

coder
324 defa görüntülendi

Merhaba arkadaşlar.

Bir makalemiz var.
Ona yorum yapılıyor. Ama yorum sisteminde kişiler, bir yorum altında bir birine cevap verebiliyor.
Aşağıdaki resimde olduğu gibi.

Şimdi bunu yapabilmem için şunlar olması gerekiyor.

makaleler tablosu
makale_id | makale_icerik

uyeler tablosu
uye_id | uye_adi

yorumlar tablosu
yorum_id | makale_id | uye_id | yorum_icerik

Şimdi takıldığım nokta şu.

Bir yorum altında kişileri nasıl birbirine cevap verdirebilirim.
Tablo yapısı nasıl olmalı?

coder
297 gün önce

@fatihkurtl, @ebykdrms ikinize de ayrı ayrı teşekkür ederim arkadaşlar.


@ebykdrms güzel ve beyinde fikirler uyandıracak bilgiler verdiğiniz için teşekkür ederim. Yazmışken sormak istiyorum.
Makaleyi html olarak yazdırıp bunu üyelere nasıl göstereceğiz?

  • Kişi makele oku linkine tıkladığında html sayfasını mı görecek?
  • Html sayfası php sayfasına include mi edilecek?
  • Her makalenin html dosyası olmalı mı?

GÜNCELLEME

Hocam listeleme işleminde bir sorun yaşıyorum.
Resimdeki hatayı alıyorum. Alt cevabı olmayan yorumda hata veriyor
Yardımcı olabilir misiniz?

Yorumlar Tablosu

Hata

db.php

<?php
function yorumlar($makale_id, $ust_yorum_id = null){
    global $db;

    $sorgu = "SELECT * FROM yorumlar INNER JOIN uyeler ON uyeler.uye_id = yorumlar.uye_id WHERE makale_id = :mak_id AND ust_yorum_id = :ust_yor_id";
    $query = $db->prepare($sorgu);
    
    if($ust_yorum_id != null){
        $query->execute([":mak_id" => $makale_id, ":ust_yor_id" => $ust_yorum_id]);
    }else{
        $query->execute([":mak_id" => $makale_id, ":ust_yor_id" => 0]);
    }
    
    $yaz = $query->fetchAll(PDO::FETCH_ASSOC);
    
    if($query->rowCount() > 0){
        return $yaz;
    }else{
        return false;
    }
}

read.php

<?php
  include_once 'inc/db.php';
  $mak_id = $_GET["id"];
  $yaz = makale($mak_id);
  $yorumlar = yorumlar($mak_id);
?>

<div class="yorumlar">

  <!-- Ana Yorum Başlangıç -->
  <?php foreach($yorumlar as $yorum): ?>
    <div class="ana_yorum">
      
      <?php
        echo $yorum["uye_adi"];
        echo $yorum["yorum_icerik"];
      ?>
      <a href="#" class="mt-2">Cevapla</a>
            
        <!-- Cevap Yorum Başlangıç -->
        <?php
            $ust_yorum_id = $yorum["yorum_id"];
            if($ust_yorum_id != 0):
            $ust_yorumlar = yorumlar($mak_id, $ust_yorum_id);
          ?>

          <?php foreach($ust_yorumlar as $ust_yorum): ?>
            <div class="cevap_yorum">
              <?php
                echo $ust_yorum["uye_adi"];
                echo $ust_yorum["yorum_icerik"];
              ?>
              <a href="#" class="mt-2">Cevapla</a>
            </div>
          <?php endforeach; ?>
          <?php endif; ?>
        <!-- Cevap Yorum Bitiş -->
    
    </div>
    <?php endforeach; ?>
    <!-- Ana Yorum Bitiş -->

</div>