PHP 如何使用复选框形式将多个条目添加到数据库中?表格只输入最后一项?

标签 php mysql forms checkbox

这是我的代码,不确定我在这里做错了什么...首先我检查传递的变量并添加有关如何处理表单的位...

// Check for a user id:
if (empty($_POST['user_id'])) {
    $errors[] = 'Oops! You forgot to enter your users.';
} else {
    $user_id = mysqli_real_escape_string($dbc, trim($_POST['user_id']));
}

if (empty($errors)) { // If everything's good.

        // Add the user to the database:
        $q = "INSERT INTO users (user_id, page_id, account_id ) VALUES ('$user_id', '$page_id', '$id' )";
        $r = mysqli_query ($dbc, $q) or trigger_error("Query: $q\n<br />MySQL Error: " . mysqli_error($dbc));

        //CLOSE UP THE SUBMIT CONDITIONAL

然后我选择用户并回显表单

echo '<form action="addusers.php" method="post">';
        while ($row = mysqli_fetch_array($show, MYSQLI_ASSOC)) {
            echo '<p><label for="learner">Add</label>
                <input type="checkbox" id="user_id" value="' . $row['user_id'] . '" name="user_id" /></p>';
    }

echo '<p><input type="submit" name="submit" value="Submit" /></p>
    <input type="hidden" name="submitted" value="TRUE" />
<input type="hidden" name="account_id" value="$id" />
<input type="hidden" name="course_id" value="$course_id" />
</form>';

这会创建我的用户列表,并允许我选择任意数量的用户,但是当我单击提交时,它只将最后一个用户输入数据库,而不是全部?

//更新 好的 - 我已经编辑了代码,以便复选框的值是一个数组,并且知道我需要使用 foreach 循环将变量传递到数据库中,但是有人可以检查该插入的代码吗?

    // Add the user to the database:
$q = "INSERT INTO users (user_id) VALUES ('$user_id')";
$r = mysqli_query ($dbc, $q) or trigger_error("Query: $q\n<br />MySQL Error: " . mysqli_error($dbc));
foreach($_POST as $key => $value){
    if ($r->execute(Array($key, $value))){
        echo "user added <br />";
    }
} // end for each loop

最佳答案

用途:

<input type="checkbox" id="user_id" value="' . $row['user_id'] . '" name="user_id[]" />

(注意“name”属性中user_id后面的[])。

这将导致 $_POST['user_id'] 成为一个值数组,每个值对应一个选中的复选框。

关于PHP 如何使用复选框形式将多个条目添加到数据库中?表格只输入最后一项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4582212/

相关文章:

php - twilio 捕获错误不起作用

php - 反引号 MySQL 实体

PHP 表单发布空白值

forms - 如何在事件监听器中添加数据转换器

php - Thrift 异步函数中的回调?

javascript - 如果在 Document Ready 功能中不工作

php - 使用 where 子句检索 MySQL 数据

php - 使用用户 ioptions 仅显示非 NULL 数据

php - 打印 $_POST 变量名和值

php - 使用 yii php 框架保持数据库版本控制的最佳方法是什么?