我已经填充了表格中的MySQL数据的HTML表单。Mysql DELETE查询奇怪的行为
我在该表中包含了一个表单,如果提交的话,应该从MySQL表中删除该行数据。
这是创建用我的表中的MySQL数据填充表的代码(错过了db连接代码和我认为不相关的其他代码)。
while($row_data=mysql_fetch_array($table_data)){
echo "<tr>";
echo "<td>" . $row_data['ID'] . "</td>";
echo "<td>" . $row_data['Site'] . "</td>";
echo "<td>" . $row_data['Date'] . "</td>";
echo "<td>" . $row_data['Target_Site'] . "</td>";
echo "<td>" . $row_data['Target_Contact_Email'] . "</td>";
echo "<td>" . $row_data['Target_Contact_Name'] . "</td>";
echo "<td>" . $row_data['Link_Type'] . "</td>";
echo "<td>" . $row_data['Link_Acquired'] . "</td>";
echo "<td>" . $row_data['Notes'] . "</td>";
echo "<td>" . $row_data['Link_URL'] . "</td>";
echo "<td></td>";
echo "<td><form action='delete.php' method='post'><input type='hidden' name='delete_id' value=" . $row_data['ID'] . "><input type='submit' value='✓' name='delete' style='background:none;' /></form></td>";
echo "</tr>";
}
正如你可以在代码中看到,有就完了,这是一种形式的表格数据,如果点击是指删除给定行。正如你从表单中看到的,动作是delete.php。
这是delete.php代码(错过了数据库连接代码)现在
$ID = $_POST['delete_id'];
$Delete = $_POST['delete'];
if(isset($Delete)){
mysql_query("DELETE FROM link_building WHERE 'ID'=" . $ID);
header("location:link_building.php?success2=1");
}else{
header("location:link_building.php?fail2=1");
}
,它有点工作,但只能删除每当我尝试在具有0的ID数据行例如删除一行ID为2的数据,它表示它成功删除了数据,但实际上并没有删除它。但是,当我点击删除id为0的行时,它将删除所有数据而不是该行。
尝试在变量(字符串)中构建查询并输出它,并注释掉mysql_query&redirect。并尝试手动运行这个输出的查询(phpmyadmin),这可能会告诉你什么是错的 – 2012-03-09 13:59:33
@Ryan - 你在哪里读过你必须引用列名?我真的很感兴趣,如果有教程或教导人们这样做的东西。 – 2012-03-09 14:02:20
我真的不记得说实话。它惊人的如此如此小的事情可以造成很大的差异 – RSM 2012-03-09 14:08:48