簡體   English   中英

如何使用復選框從數據庫中刪除多行?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM