1

我目前正在尝试从我的表单中插入回数据库值。

 <?php do { ?>
  <tr>
    <td><?php echo $row_questions['question']; ?><br /><table><tr><td style=

    "padding:15px; text-align:center">
      <label>
        <center><input type="radio" name="answers_<?php echo $row_questions['id']; ?>_<?php echo $row_questions['sub_category']; ?>" value="1" id="answers_1" /></center><br />
        Low</label>
      </td><td style="padding:15px; text-align:center">
      <label>
        <center><input type="radio" name="answers_<?php echo $row_questions['id']; ?>_<?php echo $row_questions['sub_category']; ?>" value="2" id="answers_2" /></center><br />
        Fairly Low</label>
      </td><td style="padding:15px; text-align:center">
      <label>
        <center><input type="radio" name="answers_<?php echo $row_questions['id']; ?>_<?php echo $row_questions['sub_category']; ?>" value="3" id="answers_3" /></center><br />
        Average</label>
      </td><td style="padding:15px; text-align:center">
      <label>
        <center><input type="radio" name="answers_<?php echo $row_questions['id']; ?>_<?php echo $row_questions['sub_category']; ?>" value="4" id="answers_4" /></center><br />
        Fairly High </label>
      </td><td style="padding:15px; text-align:center">
      <label>
        <center><input type="radio" name="answers_<?php echo $row_questions['id']; ?>_<?php echo $row_questions['sub_category']; ?>" value="5" id="answers_5" /></center><br />
        High</label>
      </td></tr></table><br />
  </tr>
  <?php } while ($row_questions = mysql_fetch_assoc($questions)); ?>

该表单从我的数据库中的表中获取问题(称为问题)。它们分为三类,并且每次只提取一类问题。

我需要将每个答案单独插入另一个表(称为 user_answers)。

我很难弄清楚如何去做这件事,它开始让我头疼了!

表单设法通过 $_POST 一个值,当print_r($_POST);我得到

数组([answers_90_5] => 3 [answers_91_5] => 3 )

在这两种情况下,90 和 91 是问题 ID,5 是子类别。

从这里我被难住了。

如何识别每个帖子的这些部分以及答案并将它们作为一行插入表格中?

我可以正常执行 MySQL 插入和标准表单传递值等,但我完全不知道如何做到这一点!

提前谢谢了!

4

3 回答 3

3

使用多维数组应该可以简化您的迭代工作:

<input 
    type="radio" 
    name="answers[<?php echo $row_questions['id']; ?>][<?php echo $row_questions['sub_category']; ?>]" 
    value="1" 
    id="answers_<?php echo $row_questions['id'] . '_' . $row_questions['sub_category']; ?>" />

调试这个应该会给你$_POST一个喜欢的数组:

Array ( [answers] => Array(
     90 => Array ( 5 => 3 ),
     91 => Array ( 5 => 3 ),
))
于 2012-11-07T21:05:58.323 回答
0

我认为另一个建议多暗阵列的答案很有意义。以为我仍然会提供一个关于如何解析字符串的示例。它可能很简单:

foreach ($post as $k => $v) {
    $parts = explode('_', $k);
    $questionId = $parts[1];            
    $questionCategoryId = $parts[2];    
    $sql = "INSERT INTO answers (questionId, subCategoryId, answerValue ) VALUES ($questionId, $questionCategoryId, $v)";

    ....
}

...只希望更好地转义 POST 数据。

于 2012-11-07T21:22:52.440 回答
0

当然,分开你的查询,为查询 1 发布 val 1 和 sub cat 1,查询 2 对 cat 2 和 sub cat 2 执行相同的操作。

很简单。

于 2012-11-07T21:00:26.207 回答