[英]MYSQL delete specific row button PHP
我正在建立一個非常基本的論壇,可以對帖子發表評論。 如您所見,此代碼顯示注釋,當注釋作者等於登錄用戶時,它應顯示一個刪除按鈕以刪除注釋。 現在的問題是,當我單擊“刪除”按鈕時,它將刪除帖子上的所有評論,而不僅是旁邊帶有刪除按鈕的評論。
我的“ comments”表具有id,discid,comment_username,comment和comment_time列,其中來自“ comments”的discid列引用了“ disussions”表中的id列
<?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 } ?>
首先,您不應再使用mysql_*
函數。 不推薦使用。
相反,您可以使用PDO 。
關於您的問題,對於給定帖子的每個評論,語句if(isset($_POST['deletecommentbutton']))
為true
,因為您沒有檢查所選評論的ID。 您應該將刪除代碼移出循環,並僅對選定的ID執行刪除代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.