2013-06-30 341 views
0

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

我为每条评论创建了一个链接,以便能够点击它将其重定向到表单以写出对现有评论的答案。当表单将被提交时,一个隐藏的输入应该到现有评论的当前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> 
+0

我开始使用PHP,所以我不太了解“SQL连接”是什么意思。 – TheJailbreakBay

回答

0

您的回复链接看起来像它把评论的ID回复到GET参数com。因此,在输出注释表单时,应检查com参数是否存在,如果存在,则输出带有该ID的隐藏input

+0

实际上,当我在while循环中时,com的existe参数是GET,但是我不能在隐藏的输入中使用它,因为它不存在了 – TheJailbreakBay

+0

@ user2287503:你说得对,'$ donneescom ['id'] '不再存在,但当你生成评论列表时,你只关心它。当用户点击链接时,'$ _GET ['com']'将被设置为他们点击的评论的$ donneescom ['id']'。 – icktoofay

+0

非常感谢你,它的工作原理!最后! – TheJailbreakBay

0

我会建议使用评论ID创建链接,而不是消息ID。

更好的解决方案是使用parent_id作为评论,并使用它。

+0

我不认为这真的解决了问题。或者,如果它以某种方式发生,你可以编辑一下,让它更清楚一点,你是如何解决他们的问题的?这个问题看起来是关于范围,或者以后如何访问变量。如果他使用评论ID或parent_id,这将如何改变他的问题? –