[英]How to delete multiple rows from mysql database with checkbox using PHP?
[英]How can i delete from the database multiple rows using a checkbox?
我正在嘗試使用復選框從數據庫中刪除多行。
我在foreach循環中有一個html表來查找表值。
我想在此表中放置一個刪除按鈕,以刪除特定行中的所有值。
但是我不知道該怎么做,我正在使用以下代碼:
if (isset($_POST['delete']) && (!empty($_POST['checkbox']))){
$del_id = $_POST['checkbox'];
foreach($del_id as $value){
$sql = "DELETE FROM my_table WHERE id='".$value."'";
$result = mysql_query($sql);
}
}
我在foreach循環中有這段代碼
<td><input style='width: 50px;' class='delete' value='delete' name='checkbox' type='checkbox'/></td>
<input type='hidden' name='id' value=".$key['job_id']." />
您需要從以下位置更改此代碼
<td><input style='width: 50px;' class='delete' value='delete' name='checkbox' type='checkbox'/></td>
像
<td><input style='width: 50px;' class='delete' value='delete' name='checkbox[]' type='checkbox'/></td>
看到name='checkbox'
和name='checkbox[]'
之間的區別,然后在您的php代碼中..編寫如下內容
print_r($_POST);
您將獲得所有值。嘗試此操作。
您應該將復選框視為數組:
<input style='width: 50px;' class='delete' value='delete' name='checkbox[]' type='checkbox'/>
另外,您可以使用IN()
命令,而不是為收到的每個checkbox
值創建新的MySQL語句:
if (isset($_POST['delete']) && (!empty($_POST['checkbox']))){
$del_ids = implode(',', $_POST['checkbox']);
$sql = "DELETE FROM my_table WHERE id IN('".$del_ids."')";
}
但是,我強烈建議使用准備好的語句。 您似乎也沒有清理$_POST
變量中的值,這很危險。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.