PHP将表单响应插入到单独的MySQL表/行中

时间:2013-02-08 17:44:04

标签: php mysql survey

我有一个表单,在通过POST提交后,需要根据字段插入两个单独的表中。每个字段都需要添加为自己的行。

想象一下调查;总共有四个部分。对于节中的每个问题,用户选择1到5之间的值。每个节的底部还有一个可选的注释文本区域。

每个问题在“问题”表中的数据库中都有自己的唯一ID。这些问题包含它所属的部分(“部分”表)的ID以供参考。

问题1:

如何将每个答案作为自己的行插入名为“答案”的表格中并附上问题的ID?

“答案”的结构如下:

id(AI)| question_id |值(用户提交,1-5)| RESPONSE_ID

问题2:

如何将每个部分的每个音符插入一个名为“notes”的表格中,并带有每个部分的ID?

“笔记”的结构如下:

id(AI)| section_id |值(用户提交)| RESPONSE_ID

Response_id是将用户的响应插入名为“响应”的表中的结果ID。该表将它们联系在一起,以输出每个用户提交的响应的结果。

提前致谢。

2 个答案:

答案 0 :(得分:1)

你可以做这样的事情。你说你有每个问题的问题ID,所以当用户选择答案给这样的每个问题命名时

name = "question[<?php echo $question_id ?>]"

<select name="cars">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="opel">Opel</option>
  <option value="audi">Audi</option>

不仅仅是简单的名字。当用户提交它时,将整个问题[$ ids]数组循环遍历每个id并使用问题ID插入到答案表中。你需要进行一些数组操作。

对于Notes,您只需在名称字段中使用section id并正常插入数据库。

答案 1 :(得分:1)

您可能希望使用数组来跟踪所需的ID。 您的HTML块应该看起来像:

<h3>Question '.$questionId.': Your question title here</h3>
<input type="hidden" name="question_id" value="'.$questionId.'" /> //Not necessary, but just to show you that a hidden field can be useful too 
<input type="text" name="answer['.$questionId.']" />

然后你只需将$ _POST数据用作常规数组,在for循环或大查询中(根据你正在处理的字段/数据的数量,性能会更好)。

此帖中有关多维数组的更多信息:Submitting a multidimensional array via POST with php