我试图根据表单中复选框中的选择删除数据库中的多个记录。但是,如果选择了多个复选框,则当前sql只会出于某种原因删除第一个id,而不会删除其余的id。
$del_ids = implode(',', array_keys($_POST['check_list']));
$query = "DELETE FROM enhancements WHERE id IN('$del_ids')";
$result = mysqli_query($connection, $query);例如,我的数组如下所示:
Array
(
[check_list] => Array
(
[4] => on
[6] => on
)
)跑完之后:
$del_ids = implode(',', array_keys($_POST['check_list']));我的$del_ids字符串如下所示:
4,6但是,由于某些原因,只使用id 4删除记录,用id 6记录不删除,它们都应该删除。有什么建议吗?
发布于 2015-03-26 11:38:51
你必须用这个:
$del_ids = implode("','", array_keys($_POST['check_list']));
发布于 2015-03-26 11:39:46
$query = "DELETE FROM enhancements WHERE id IN('".$del_ids."')";像发送字符串一样发送键,尝试用
$query = "DELETE FROM enhancements WHERE id IN(".$del_ids.")";它应该能起作用
发布于 2015-03-26 11:38:42
要么运行多个delete语句,要么在语句中追加or子句。
需要枚举要删除ids的数组,可以使用以下内容:
foreach($_POST['check_list']as $key) {
$query = "DELETE FROM enhancements WHERE id IN('".$key."')";
$result = mysqli_query($connection, $query);
}https://stackoverflow.com/questions/29277234
复制相似问题