我已經填充了表格中的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