Php SQL如何在数据库中插入多个复选框

Php SQL如何在数据库中插入多个复选框,php,html,sql,database,Php,Html,Sql,Database,我花了几天时间思考如何最好地在数据库中插入多个复选框 我想做的是,如果用户选择了一个选项,相关的复选框将显示在选择框的下方 例如: 用户选择选项1->出现复选框A、B和C 用户选择选项2->出现复选框D、E和F 我的选项来自一个表,复选框来自另一个表 这已经很好了 但是,如何在我的数据库中插入所选的复选框(例如A和C),以便我能够分析来自此特定提交的数据(例如,用户已提交表单->提交1,选择了选项1,并且仅选中了75%的复选框;复选框为A和C;缺少复选框C) 我希望我能解释一下。我想“简单地

我花了几天时间思考如何最好地在数据库中插入多个复选框

我想做的是,如果用户选择了一个选项,相关的复选框将显示在选择框的下方

例如:

  • 用户选择选项1->出现复选框A、B和C
  • 用户选择选项2->出现复选框D、E和F
我的选项来自一个表,复选框来自另一个表

这已经很好了

但是,如何在我的数据库中插入所选的复选框(例如A和C),以便我能够分析来自此特定提交的数据(例如,用户已提交表单->提交1,选择了选项1,并且仅选中了75%的复选框;复选框为A和C;缺少复选框C)


我希望我能解释一下。我想“简单地”提交数据,以便以后进行分析。

使用数组选择多个复选框,如下所示

<input type="checkbox" name="Days[]" value="Daily">Daily<br>
每日

您可能应该使用两个表:

其中包含有关哪些复选框与哪个选项匹配的信息:

Option | Checkbox
1      | A
1      | B
1      | C
2      | D
2      | E
2      | F
然后是第二个值

SubmidId | Option | Checkbox | Value
1000     | 1      | A        | 1
1000     | 1      | B        | 0
1000     | 1      | C        | 1
这将允许您使用第一个表定义结构,第二个表存储记录。如果PIVOT命令使您更容易显示内容,请毫不犹豫地使用它


好处:向两个表中添加一个版本可以让您更改结构并保持历史一致性。

有两种方法可用于您的特定场景,Pierre提到了其中一种。另一种方法是,无论您分配给checkbox元素的值是什么,都使用逗号分隔的值将所有选定的值保存在一列中

例如: 在选项1中,您有三个复选框,其中包含一些值

<input type="checkbox" name="test[]" value="1" />
<input type="checkbox" name="test[]" value="2" />
<input type="checkbox" name="test[]" value="3" />
在检索时,您可以用逗号分解()它们,并对每个复选框条目执行任何您喜欢的操作


这样,您可以在一个类别下保存任意多个复选框选项。我希望这有助于回答您的问题。

复选框和选项的数量可能会有所不同,因为它是从另一个表中获取其值的,用户可以在该表中输入更多值。OK,我将编辑“未定义的复选框数”的答案这仍然是一个平面文件表,只是现在您正在复制信息。如果第一个表的信息在第二个表中完全重复,那么第一个表需要什么?第一个表的要点是具有选项/检查链接配置。这会随着时间的推移而改变。在第二个表中,您将选项/复选框链接的值和版本关联起来。听起来您有两个不同的问题:1)如何根据用户操作显示/隐藏元素,以及2)提交表单时如何实际处理结果。第一个答案是JavaScript,而不是php;第二个要求您昨天展示一些关于这个解决方案的代码思想,但是如果您想以数组的形式插入信息,则说明数据库的使用方式不正确。
id | test
1  | 1,3,4,5,6