首页 > 解决方案 > 如何将复选框表单插入类型集的数据库属性

问题描述

我有表单内容 4 个复选框;我的数据库 MYSQL 包含两个属性(Id,课程)设置课程类型它可以有很多项目,我想将这些复选框值插入数据库

我正在使用它,但它保存了检查 ex 的最后一个值:如果我检查保存 C++、JAVA 和 vb,则只保存 vb!

INSERT INTO `$table` (`id`, `courses`) VALUES (NULL,'$ch');

$ch 是变量保存 POST 表单值的名称

我怎么能做到这一点?

        <input type="checkbox" value="C++" name="c++" /> C++ <br />
        <input type="checkbox" value="JAVA" name="java" /> JAVA <br />
        <input type="checkbox" value="VB" name="vb" /> VB.NET <br />
        <input type="checkbox" value="PHP" name="php" /> PHP <br />


INSERT INTO `$table` (`id`, `courses`) VALUES (NULL, 'check1 , check2 , ... etc);

标签: phphtmlmysqldatabaseforms

解决方案


$courses = [];
$i = 0;
if($_POST['c++'] != '')
{
    $courses[$i++] = $_POST['c++'];
}
if($_POST['java'] != '')
{
    $courses[$i++] = $_POST['java'];
}
if($_POST['vb'] != '')
{
    $courses[$i++] = $_POST['vb'];
}
if($_POST['php'] != '')
{
    $courses[$i++] = $_POST['php'];
}
$ch = implode(',', $courses); // It will convert the array ($courses) into comma separated string.

1.这里我已经初始化了一个数组$courses。
2. 如果复选框被选中,这意味着值不等于 null,那么我已将值存储在 $courses 数组中。
3. 最后我将数组更改为逗号分隔的字符串($ch),它适合存储在数据库中的课程列中。


推荐阅读