0

首先,我在表中显示值列表,我想做的是根据表的唯一表 ID 添加一个删除按钮。

所以我试图使用我声明的这个按钮从我的数据库中删除一个值,但是我目前正在做的事情只是没有删除数据库中的任何内容。

这是我的数据库表

CREATE TABLE `5050goosedown` (
    `goosedown_id` int(11) unsigned NOT NULL auto_increment,
    `name` varchar(100) NOT NULL default '',  
    `width` int(8),
    `height` int(8),
    `normal_fill` int(8),
    `our_fill` int(8),
    `old_price` DECIMAL(3,2),
    `price` DECIMAL(3,2), 
    PRIMARY KEY  (`goosedown_id`)
    ) TYPE=MyISAM;

这是我的按钮,它在一个重新加载同一页面的表单中..

echo '<td><input type="submit" name="'.$row['goosedown_id'].'" value="Delete" /></td>"';

所以这是一个显示删除的按钮,它的名称是该表的唯一 id...(我拥有并希望在其上执行此操作的几个表之一)

然后当页面重新加载时,我有这个 if 语句来捕获被按下的特定删除按钮......这在 atm 中不起作用......

//DELETE QUERIES
if(isset($_POST['goosedown_id']) and is_numeric($_POST['goosedown_id']))
{
  // here comes your delete query: use $_POST['deleteItem'] as your id
  mysql_query("DELETE FROM 5050goosedown WHERE goosedown_id='goosedown_id'");
}
4

3 回答 3

2

将您的 HTML 更改为:

echo '<td><form method="post" action=""><input type="hidden" name="goosedown_id" value="'.$row['goosedown_id'].'" /><input type="submit" name="sumbit" value="Delete" /></form></td>"';

和脚本:

if(isset($_POST['goosedown_id']) and is_numeric($_POST['goosedown_id'])){
  mysql_query("DELETE FROM 5050goosedown WHERE goosedown_id=".(int)$_POST['goosedown_id']);
}

您没有传递IDwith sumbit 按钮,因为它的值是Delete,您需要创建一个隐藏字段。

于 2012-10-01T07:43:10.817 回答
1

正如goosedown_id定义的那样, int(11) unsigned您不能在查询中引用它:

"DELETE FROM 5050goosedown WHERE goosedown_id=$goosedown_id"
//                                            ^           ^ no quote

当然 $goosedown_id 是表单中的发布值:

$goosedown_id = (int)$_POST['goosedown_id'];
//               ^^^ prevents SQL Injection

所以你必须做一个'假'帖子,因为该值不能在提交中:

<input type="hidden" name="goosedown_id" value="<?php echo $row['goosedown_id'] ?>" />

你也可以把它写成一个完整的 php 字符串:

<?php echo '<input type="hidden" name="goosedown_id" value="' . $row['goosedown_id'] . '" /> ?>
于 2012-10-01T07:42:49.647 回答
0

试试这个查询:

mysql_query("DELETE FROM 5050goosedown WHERE goosedown_id=".mysql_real_escape_string($_POST'goosedown_id'));

另外,请确保该按钮实际上位于formwith内method="post"

于 2012-10-01T07:45:32.077 回答