php數(shù)據(jù)庫操作之 批量和指定刪除用戶
我們在13.3這一節(jié)《通過步驟做一個列表顯示》。在刪除前,有單行刪除數(shù)據(jù)和刪除多行數(shù)據(jù)。
判斷是單選還是多選刪除
????1.單行是通過get傳參的方式向delete.php文件中寫上對應的ID。
????2.而多個刪除是通過POST的方式向delete.php頁面中傳遞對應的ID。
????3.如果這兩個都不符合的話,那我們可以視為數(shù)據(jù)不合法。
if (is_array($_POST['id'])) { $id = join(',', $_POST['id']); } elseif (is_numeric($_GET['id'])) { $id = (int) $_GET['id']; } else { echo '數(shù)據(jù)不合法'; exit; }
組合SQL語句
我們之前給大家在MySQL這一章時講解過刪除時可以使用到in的子語句。
同樣在這里,我們就可以用in的子語句來達到效果。
join函數(shù)將多選刪除傳過來的id變?yōu)榱?,4,5的格式,最終多選刪除的SQL語句執(zhí)行出來的效果就是:
delete from user where id in(3,4,5,6,8);
而單選刪除的語句效果就是:
delete from user where id in(3)
這樣我們就實現(xiàn)了單選和多選自適應效果。
$sql = "delete from user where id in($id)";
最終配套而成的整體代碼演示如下:
<?php include 'connection.php'; if (is_array($_POST['id'])) { $id = join(',', $_POST['id']); } elseif (is_numeric($_GET['id'])) { $id = (int) $_GET['id']; } else { echo '數(shù)據(jù)不合法'; exit; } $sql = "delete from user where id in($id)"; $result = mysqli_query($conn, $sql); if ($result) { echo '刪除成功'; } else { echo '刪除失敗'; } ?>