我们在13.3这一节《通过步骤做一个列表显示》。在删除前,有删除单行数据和删除多行数据。
判断是单选还是多选删除
单行是通过get传参的方式向delete.php文件中写上对应的ID。
而多个删除是通过POST的方式向delete.php页面中传递对应的ID。
如果这两个都不符合的话,那我们可以视为数据不合法。
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 "删除失败";
}