动态表单字段创建和保存在数据库php mysql中

时间:2014-05-18 10:30:58

标签: php mysql sql innodb

我正在制作医疗软件,而且我陷入困境。我必须制作一个报告部分,用户将填写患者的报告。主要问题是因为字段/列是可变的(更少/更多)。如果我在血液测试中填写表格,列选项是不同的,并且对于X射线列是不同的。

我创建了一个数据库,因此它将存储该测试ID和患者ID的选项值

CREATE TABLE IF NOT EXISTS `mp_tests_options` (
`test_optn_id` int(11) NOT NULL AUTO_INCREMENT,
`optn_test_id` int(11) NOT NULL,
`optn_patient_id` int(11) NOT NULL,
`test_optn_name` varchar(255) NOT NULL,
`test_optn_value` LONGTEXT DEFAULT NULL,
`test_optn_def_value` LONGTEXT DEFAULT NULL,  
PRIMARY KEY (`test_optn_id`),
INDEX (`optn_test_id`),
INDEX (`optn_patient_id`),
FOREIGN KEY (optn_test_id) REFERENCES mp_tests(test_id) 
ON UPDATE CASCADE ON DELETE   RESTRICT 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

但是如何通过适当的验证为用户制作前端。我不想单独写每个表格。

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

为您想要的每种表单创建一个单独的表,以了解哪些列。

 _______________________________________________
|   formName  | fields                          |
|-----------------------------------------------|
| x-ray       |field1,field2,field3,field4      |
|-----------------------------------------------|
| bloodtest   |field1,field2,field3,field4      |
|_______________________________________________|

然后使用explode()将其转换为数组。 还要创建一个表,其中包含每个表单名称的可能字段。 只需在不需要的字段中插入空白即可。