php - 如何构建具有动态输入字段的表?

标签 php mysql

我有一个 PHP 脚本,您可以(作为管理员)在其中选择问题表单中将有多少个输入字段。有些字段是非可选的,但有些是可选的(任意多)。

MySQL 中用于收集答案的表如下所示:

id | userid | fname | ename | seat | optional

如果管理员希望它是两个可选的输入字段,那么一个填写的表格的结果将在表格中包含三个拖曳:

| 5 | 3 | Peter | Pan | 4 |            |
|   | 3 |       |     |   | opt.value1 |
|   | 3 |       |     |   | opt.value2 |

这真的是最好的存储方式吗?你会如何解决?

另外,我如何确保用户 ID 对用户而言是唯一的?我不能在 MySQL 中使用自动递增键值的东西,因为相同的值在三行上...

最佳答案

按照我的学习方式,您必须使用多个表。像这样:

表 1:

id | userid | fname | ename | seat

表 2:

userid | optional

Table2.userid 是对Table1.userid 的引用

然后可以将必须​​归档的字段放入第一个表中,将所有可选字段放入第二个表中。

如果我按照你的例子你的数据库应该是这样的:

表 1:

id | userid | fname | ename | seat
 5 |      3 | Peter |   Pan |    4

表 2:

userid | optional
     3 | opt.value1
     3 | opt.value2

对了,为什么你的Table1中同时有id和userid?

关于php - 如何构建具有动态输入字段的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15459890/

相关文章:

php - 如何使用 PHP 将 MySQL 条目拆分为不同的行

php - Mysql查询多个字段值

php - 使用后退按钮时重定向 Codeigniter 用户

PHP登录系统密码不匹配

mysql - 如何删除 LIKE 运算符准备语句中的引号?

php - 关系型 MySQL - 获取属性?

php - 通过代码将 PHP 连接到 MySQL

java - 我不知道如何重置循环(请参见示例)

javascript - 正确使用ajax成功吗?