评论评论


Commenting on a comment

我目前正在开发一个评论系统,我想让用户对现有的评论进行评论。

我为每条评论创建了一个链接,可以点击它重定向到表单,为现有评论写一个答案。当提交表单时,隐藏的输入应该是现有注释的当前id。但有一个问题:每个注释的id在while循环中都是可用的,但循环一结束,变量就消失了。所以我想知道如何获得每条评论的id,并将其发送到隐藏的输入中。

这里是我的完整代码:

<h2>Fiche</h2>
<?php
$_SESSION['cf']['message'] = $_GET['message'];
$reponse = db_query('SELECT * FROM messages WHERE id = ?', array($_SESSION['cf']['message']));
$donneesmsg = $reponse->fetch()
?>

<h5><?php echo $donneesmsg['Pseudo']; ?></h5>
<p class="text-center text-align"><?php echo $donneesmsg['Message']; ?></p>
<a href="index.php?page=fiche&message=<?php echo $_SESSION['cf']['message'] ?>&#formcom">Repondre</a>
<?php
    echo '<h4>Commentaires</h4>';
    echo '<hr>';
            $reponse1 = db_query('SELECT * FROM comment WHERE messages_id = ?', array($donneesmsg['id']));
            $donneescom1 = $reponse1->fetch();
$reponse = db_query('SELECT * FROM comment WHERE messages_id = ? ORDER BY id ASC', array($donneesmsg['id']));
while ($donneescom = $reponse->fetch()) {

    if ($donneescom['commentaires_id'] == 0) 
        {
            echo '<center>';
            echo '' .$donneescom['id']. '<br>';
            echo '' .$donneescom['pseudo']. '<br>';
            echo '' .$donneescom['commentaire']. '<br>';
            echo '<a href="index.php?page=fiche&message=' .$_SESSION['cf']['message']. '&com=' .$donneescom['id']. '#formcom">Repondre</a>';
            echo '<hr>';
            echo '</center>';

        }

    if ($donneescom['commentaires_id'] != 0)
        {
            echo 'En reponse au com ' .$donneescom['commentaires_id']. '<br>';
            echo '' .$donneescom['id']. '<br>';
            echo '' .$donneescom['pseudo']. '<br>';
            echo '' .$donneescom['commentaire']. '<br>';
            echo '<a href="index.php?page=fiche&message=' .$_SESSION['cf']['message']. '&com=' .$donneescom['id']. '#formcom">Repondre</a>';
            echo '<hr>';

        }
    }
    $reponse1 = db_query('SELECT * FROM comment WHERE messages_id = ?', array($donneesmsg['id']));
    $donneescom1 = $reponse1->fetch();
?>

<form id="formcom" method="post" action="index.php?page=addcomment">
Pseudo: <input type="text" placeholder="Pseudo" name="pseudo"> <br>
Mail: <input type="email" placeholder="Mail" name="mail"> <br>
Commentaire: <textarea  placeholder="Commentaire" name="commentaire"></textarea> <br>
<input type="hidden" name="date" value="<?php echo time(); ?>"><br>
<input type="hidden" name="messages_id" value="<?php echo $donneesmsg['id']; ?>"><br>           
<input type="text" name="commentaires_id" value="<?php echo $donneescom1['id']; ?>"><br>
<input type="hidden" name="id" value="<?php echo $donneesmsg['id']; ?>"><br>
<input type="submit" value="Envoyer">
</form>

您的回复链接看起来像是将要回复的注释ID放入GET参数com中。因此,当您输出注释表单时,您应该检查com参数是否存在,如果存在,则输出一个包含该ID的隐藏input

我建议用注释id而不是消息id创建链接。

更好的解决方案是为注释使用parent_id,并使用它。