php資料庫操作之 批量和指定刪除用戶

我們在13.3這一節​​《透過步驟做一個清單顯示》。在刪除前,有單行刪除資料和刪除多行資料。

判斷是單選還是多選刪除

#    1.單行是透過get傳參的方式向delete.php文件中寫上對應的ID。

    2.而多個刪除是透過POST的方式傳遞對應的ID到delete.php頁面。

    3.如果這兩個都不符合的話,那我們可以視為資料不合法。

if (is_array($_POST['id'])) {
    $id = join(',', $_POST['id']);
} elseif (is_numeric($_GET['id'])) {
    $id = (int) $_GET['id'];
} else {
    echo '数据不合法';
    exit;
}

組合SQL語句

我們之前給大家在MySQL這一章時講解過刪除時可以使用到in的子語句。

同樣在這裡,我們就可以用in的子語句來達到效果。

join函數將多選刪除傳過來的id變成3,4,5的格式,最後多選刪除的SQL語句執行出來的效果就是:

delete from user where id in(3,4,5,6,8);

而單選刪除的語句效果就是:

delete from user where id in(3)

這樣我們就實現了單選和多選自適應效果。

$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 '数据不合法';
   exit;
}

$sql = "delete from user where id in($id)";

$result = mysqli_query($conn, $sql);

if ($result) {
   echo '删除成功';
} else {
   echo '删除失败';
}
?>


#
繼續學習
||
<?php include 'connection.php'; if (is_array($_POST['id'])) { $id = join(',', $_POST['id']); } elseif (is_numeric($_GET['id'])) { $id = (int) $_GET['id']; } else { echo '数据不合法'; exit; } $sql = "delete from user where id in($id)"; $result = mysqli_query($conn, $sql); if ($result) { echo '删除成功'; } else { echo '删除失败'; } ?>