0

我正在使用带有多个复选框的表单来选择多行并删除所有行,我使用的代码是:

foreach ($_POST as $valor){
    $del_user = $_POST["borrar_usuario"];
    $q_borrar = "delete from usuarios where id_user in ('$del_user')";
    mysqli_query($con, $q_borrar);
    echo "usuario borrado";
    header('refresh: 3; url= exito.php');
}

但它不会删除任何东西。请问有什么帮助吗?

4

4 回答 4

0

这些东西?

foreach ($_POST["borrar_usuario"] as $valor){
    $del_user = $valor;
    $q_borrar = "delete from usuarios where id_user in ('$del_user')";
    mysqli_query($con, $q_borrar);
    echo "usuario borrado";
    header('refresh: 3; url= exito.php');
}
于 2013-07-10T09:41:59.507 回答
0

好的,因为mysql_query接受两个参数查询并链接你放错了它们,它应该是:

mysqli_query($q_borrar, $con);

此外,我会header()在 foreach 结束时删除,因为它会触发并且有可能并非所有数据都会被删除。

这一切都假设您的 $deluser 变量没问题,我强烈建议您在查询之前转义所有数据。

于 2013-07-10T09:42:58.953 回答
0

您应该放置header()foreach()功能之外。

$deleteItems = $_POST['items'];
foreach ($deleteItems as $s)
{
    $str = $s;
    mysqli_query($con,"DELETE FROM table WHERE id='$str'")or die(mysqli_error($con));
}
header("location: manage_menu.php");
exit();
于 2013-07-25T08:22:51.277 回答
0

如果 post['borrar_usuario'] 是数组,那么您可能可以将 by 引号中的值内爆

// applied mysql_real_escape string
$del_user = array_map( function($var){return mysql_real_escape_string($var); } ,$_POST["borrar_usuario"]);  
$delUserList = implode("','",$del_user)."'";
$q_borrar = "delete from usuarios where id_user in ($delUserList)"; // please check SQL before executing
mysqli_query($con, $q_borrar);
echo "usuario borrado";
header('refresh: 3; url= exito.php');
于 2013-07-10T09:59:21.733 回答