动态调整表单大小 - 简单的数据库设计?

时间:2015-11-10 15:05:28

标签: php mysql forms

所以我的表单中有三个字段:用户信息,主机名信息和附加信息。主机名信息是动态字段,意味着用户可以为该部分添加更多字段。我的解决方案之一是在php POST页面中执行for循环,并根据有多少主机名提交该信息。有比这更好的方法吗?我的最终目标是希望从MySQL数据库中提取此信息并根据每个表单提交显示它。我只想显示用户信息ONCE,然后显示与该用户关联的所有主机名。

示例:

假设我们已经从表单提交了几个请求。然后db现在看起来像这样(省略addinfo):

主机名是表单中的动态字段。

首先----- -----最后主机名

约翰----- ----- Doe的www.test1.com

约翰----- ------ Doe的www.test2.com

约翰----- ----- Doe的www.test3.com

同盟----- -----帕克www.hello1.com

同盟----- -----帕克www.hello2.com

约翰----- ----- Doe的www.tired1.com

约翰----- ----- Doe的www.tired2.com

如何提取数据以便仅提取每个请求(为其他用户提供帐户)?

结束目标示例:

请求1: 第一名:John,Last:Doe,HostNames:www.test1.com,www.test2.com,www.test3.com 要求2: 第一名:Ally,Last:Parker,HostNames:www.hello1.com,www.hello2.com Request3: First John,Last Doe,HostNames:www.tired1.com,www.tired2.com

1 个答案:

答案 0 :(得分:1)

您的数据库设计根本就是错误的,理想情况下您应该将其分为两个表:

表1:用户ID,名字,姓氏,附加信息......每个用户存储一次。

表2:用户ID,主机名,存储用户ID和主机名的组合。

然后,您可以从表1中获取ID,并使用该ID在两个查询中从表2中获取主机名。