MYSQL删除特定的行按钮PHP

时间:2015-09-07 17:58:06

标签: php html mysql

我正在建立一个非常基本的论坛,能够评论帖子。如您所见,此代码显示了通知,当注释作者等于登录用户时,它应显示删除按钮以删除注释。问题是,当我点击删除按钮时,它会删除帖子上的所有评论,而不仅仅是评论旁边的删除按钮。

我的评论' table具有列id,discid,comment_username,comment和comment_time,其中discid列来自' comments'指的是表格中的id列' dicussions'

    <?php

    $id = mysql_real_escape_string($_GET['id']);
    $query = 'SELECT * FROM discussions WHERE `id` = '.$id.' LIMIT 1';
    $result = mysql_query($query);
    $row = mysql_fetch_array($result);

    ?>
            <h2><? echo $row['category'] . $row['topic']; ?></h2>
            <div>Posted on <? echo $row['date_time']; ?> by <? echo $row['username'] ?></div>
            <div><? echo $row['discussion']; ?></div>

     <?

$result_comments = mysql_query("SELECT * FROM comments WHERE discid = $id ORDER BY comment_time ASC");

        while ($record = mysql_fetch_array($result_comments))

        {

        ?>
                <form action="" method="POST" >
                  <? echo $record['comment_username']. $record['comment_time'] ?>   

                  <!-- if comment from logged in user, show delete option -->
                  <? 
                  if ($record['comment_username'] == $log_username) 
                    { 
                      echo '<span><button title="Delete comment" value="' . $record['id'] .'" name="deletecommentbutton" type="submit">X</button></span>';
                    } 
                    if(isset($_POST['deletecommentbutton']))
                    { 
                      $commentid = $record['id'];
                      $result_delete = mysql_query("DELETE from comments WHERE id='$commentid'");
                      header("Location: url/discussion_view.php?id=".$_GET['id']."");
                    }
                  ?>

                <div><? echo $record['comment'] ?></div></form>

          <?php } ?>

1 个答案:

答案 0 :(得分:4)

首先,您不应再使用mysql_*函数了。它被弃用了。

相反,您可以使用PDO

关于您的问题,对于给定帖子的每条评论,语句if(isset($_POST['deletecommentbutton']))都是true,因为您没有检查所选评论的ID。 您应该将删除代码移到循环外部,并仅对选定的ID执行它。