PHP MySQL通过“删除”按钮从数据库中删除行;“对象”;

PHP MySQL通过“删除”按钮从数据库中删除行;“对象”;,php,mysql,Php,Mysql,[固定] 我解决了我的问题。正如我所建议的那样。我看到他使用的复选框似乎比按钮更有用,因为你可以一次取出多个对象。他还将对象的id附加到按钮上,就像建议的那样 首先选择几行: mysql_query("SELECT * FROM shouts ORDER BY `id` DESC LIMIT 5") 然后为每一行获取一个数组 while ($row = mysql_fetch_array($query)) { 然后为该行设置boxid,然后在该行的循环中运行delete查询,其中where

[固定] 我解决了我的问题。正如我所建议的那样。我看到他使用的复选框似乎比按钮更有用,因为你可以一次取出多个对象。他还将对象的id附加到按钮上,就像建议的那样



首先选择几行:

mysql_query("SELECT * FROM shouts ORDER BY `id` DESC LIMIT 5")
然后为每一行获取一个数组

while ($row = mysql_fetch_array($query)) {
然后为该行设置boxid,然后在该行的循环中运行delete查询,其中where子句查找该boxid

因此,给定此代码流,您将始终从表中删除所有行

mysql_query("DELETE FROM `shoutbox`.`shouts` WHERE `shouts`.`id` = '$boxid'")
现在,真正的问题是,如何解决这个问题

在select语句中,只需添加一个where子句,该子句只返回带有boxid的行或您实际需要的任何id的行,以便只返回一行(或者确切地说是要删除的行)

"SELECT FROM `shoutbox`.`shouts` WHERE `shouts`.`id` = '$someSortOfID'"

此外,mysql_*已被弃用,因此如何“升级”到新标准mysqli

我不建议您使用折旧mysql.*函数

您需要做的是将输入值更改为行id

<form action="" method='POST'>
 <input style='display:block; margin:0 auto;'type='submit' name='delete_button' value='<?echo$boxid;?>' />
</form>


快到2014年了。为什么您仍然使用折旧后的mysql_*函数?使用PDO或MySQLiseIndicate:使用
标题(“位置:xxxxxxxx”)
而不是
标题('refresh…
,看看哪一个可能有帮助。我发布了修复程序,我也在使用mysqli。谢谢你的帮助。我很感激。不客气,圣诞快乐;-)谢谢,复选框可能是个问题,在我的情况下,我意外删除了不应该删除的条目(当然使用测试数据库)。您可以将
复选框
替换为
无线电
,这样您一次只删除一个条目。@YuriahI感谢您的建议!但我的select语句确实有WHERE子句。当我将其从循环中取出时,它只会删除最后一个“post”已提交。不,没有,这是您的问题:mysql_查询(“从shouts ORDER BY
id
DESC LIMIT 5中选择*);没有哪一个只是为了显示帖子。我修复了它,但我会发布修复。再次感谢你。是的,请,然后我会在代码修复后更新此答案。我将修复作为我上述问题的一部分发布。谢谢你的建议,这很有帮助!我很感激。我也发布了修复。
"SELECT FROM `shoutbox`.`shouts` WHERE `shouts`.`id` = '$someSortOfID'"
<form action="" method='POST'>
 <input style='display:block; margin:0 auto;'type='submit' name='delete_button' value='<?echo$boxid;?>' />
</form>
<?php
$query = mysql_query("SELECT * FROM shouts ORDER BY `id` DESC LIMIT 5") or die('<p id="formbox" style="text-align:center;">There was an unexpected error grabbing news from the database</p>'); 
while ($row = mysql_fetch_array($query)) {
 $title2 = $row['title'];
 $post2 = $row['post'];
 $date2 = $row['date'];
 $author = $row['author'];
 $boxid = $row['id'];

 echo '<div class="news-title"><b style="float:left;">'.$author.'</b><b style="text-align:center; color:green;">'.$title2.'</b><a href="">'.$date2.'</a></div>';
 echo '<div class="news-body">'.$post2.'</div>';
 if ($_SESSION['level'] > 3 || $_SESSION['group'] == 'Admin' || $_SESSION['group'] == 'Owner') {
?>
 <form action="" method='post'>
  <input style='display:block; margin:0 auto;'type='submit' name='delete_button' value='<?echo$boxid;?>' />
 </form>
<?php
 }
 echo '<br>';
}
if(isset($_POST['delete_button'])) { 
 $boxid = $_POST['delete_button'];
 $con = mysql_query("DELETE FROM `shoutbox`.`shouts` WHERE `shouts`.`id` = '$boxid'") or die('<p id="formbox" style="text-align:center;">There was an unexpected error deleting the post from the database</p>');
 header('Location: http://'.$_SERVER['HTTP_HOST']);
 mysql_close($con);
}
?>