-1

试图在我的脚本中实现这一点,但是我没有任何运气,而且我不是最好的正在弄清楚事情。

这是我的简单 2 复选框权限

if ($_POST['can_post'] != null)
{
    foreach($_POST['can_post'] as $can_post)
    {
        $can_post . ' ';
    }
}

if ($_POST['can_view'] != null)
{
    foreach($_POST['can_view'] as $can_view)
    {
        $can_view . ' ';
    }
}

$can_view & $can_post 显示,如果我在 foreach 中回显的话。

即:2 3 6 1

这对我的系统来说绝对是完美的,但这不是它插入查询的方式。

我需要做的是插入到我的 MySQL 查询中,但是每当我这样做时,我都会遇到值问题。

$example = $mysqli->query("UPDATE `my_table` SET `can_view` ...

为了改进我的问题......

我正在尝试将 $can_view 中的数据转换为一个字符串,该字符串可用于我的 MySQL 代码,该代码不在 foreach 内。

4

1 回答 1

2

如果我正确阅读了您的问题,那么您的主要问题是您将数组正确打印到屏幕上,但未能以可以在查询中发送到 SQL 服务器的方式存储它们。假设这是正确的,这是一种方法:

$can_post = "";
$can_send = "";

if (isset($_POST["can_post"]) {
    foreach($_POST["can_post"] as $val) {
        $can_post .= $val . ' ';
    }
}

if (isset($_POST["can_send"]) {
    foreach($_POST["can_send"] as $val) {
        $can_sned .= $val . ' ';
    }
}

$q = $mysqli->query("UPDATE `my_table` SET `can_post` = $can_post, `can_view` = $can_view ...");

编辑:

Havelock 建议使用implode()函数而不是遍历每个数组,这实际上是一个好主意。这是一个例子:

$can_post = "";
$can_send = "";

if (isset($_POST["can_post"]) {
    $can_post = implode(" ", $_POST["can_post"]);
}

if (isset($_POST["can_send"]) {
    $can_send = implode(" ", $_POST["can_send"]);
}
于 2013-04-28T02:58:55.593 回答