简体   繁体   English

我如何使用php将输入字段数组插入mysql

[英]How do i insert an array of input fields into mysql with php

I am trying to insert an array of dynamically generated input field into my db. 我正在尝试将动态生成的输入字段的数组插入到我的数据库中。 The problem is that the insertion gets messed up during insertion. 问题是插入在插入过程中变得混乱。 Some records get inserted into the wrong Rows when Some field in the form are left empty. 当表格中的“某些”字段留空时,某些记录将插入错误的行中。 I red somewhere that i have to index my arrays properly. 我在必须正确索引数组的地方加了红色。 i don't know how to do this. 我不知道该怎么做。 Is there a better way of doing this? 有更好的方法吗? or is there a way of fixing my code. 还是有办法修复我的代码。

I have searched everywhere for help and i haven't found any. 我到处寻找帮助,但没有找到任何帮助。 I would really appreciate it if i could get some help from the experts here. 如果能从这里的专家那里得到一些帮助,我将不胜感激。

Here is the form 这是表格

                        <?php
                        while($row2=$coursefetch1->fetch()){


                          $iid = $row2['id'];
                          if($row2['type'] == 0){
                          echo '

                            <div class="tab-pane" id="'.$row2['id'].'">
                              <div class="row" align="center">

                              <b> '.$row2['question'].' </b><br>
                              <input type="hidden" name="question[]" value="'.$row2['question'].'">

                              <input type="hidden" name="test_id[]" value="'.$row2['test_id'].'">
                              <input type="checkbox" name="yanswer1[]" value="a"><span> '.$row2['a'].' </span><br>
                              <input type="checkbox" name="yanswer2[]" value="b"><span> '.$row2['b'].' </span><br>
                              <input type="checkbox" name="yanswer3[]" value="c"><span> '.$row2['c'].' </span><br>
                              <input type="checkbox" name="yanswer4[]" value="d"><span> '.$row2['d'].' </span><br>


                              </div>
                            </div>

                        ';
                      }


                      elseif($row2['type'] == 2){
                      echo '

                        <div class="tab-pane" id="'.$row2['id'].'">
                          <div class="row" align="center">

                          <b> '.$row2['question'].' </b><br>
                          <input type="hidden" name="question[]" value="'.$row2['question'].'">

                          <input type="hidden" name="test_id[]" value="'.$row2['test_id'].'">
                          <input type="radio" name="yanswer1[]" value="a"><span> '.$row2['a'].' </span><br>
                          <input type="radio" name="yanswer2[]" value="b"><span> '.$row2['b'].' </span><br>
                          <input type="radio" name="yanswer3[]" value="c"><span> '.$row2['c'].' </span><br>
                          <input type="radio" name="yanswer4[]" value="d"><span> '.$row2['d'].' </span><br>


                          </div>
                        </div>

                    ';
                  }

                          elseif($row2['type'] == 1){

                            echo '

                            <div class="tab-pane" id="'.$row2['id'].'">
                              <div class="row" align="center">

                              <b> '.$row2['question'].' </b><br>
                              <input type="hidden" name="question[]" value="'.$row2['question'].'">

                              <input type="hidden" name="test_id[]" value="'.$row2['test_id'].'">
                              <input type="text" name="yanswer1[]" value="">


                              </div>
                            </div>


                            ';




                          }
                        }



                        ?>

Here is the file that processes the form 这是处理表格的文件

                    <?php
                    require "head.php";


                    if (isset($_POST['submit'])) {
                      $question_array = $_POST['question'];
                      $testid_array = $_POST['test_id'];
                      $answer_array1 = $_POST['yanswer1'];
                      $answer_array2 = $_POST['yanswer2'];
                      $answer_array3 = $_POST['yanswer3'];
                      $answer_array4 = $_POST['yanswer4'];
                      $i = 0;
                    for($i = 0; $i < count($question_array); $i++) {
                        $question = $question_array[$i];
                        $testid = $testid_array[$i];
                        $answer = $answer_array1[$i]."".$answer_array2[$i]."".$answer_array3[$i]."".$answer_array4[$i];

                        $enterscore = $achilles->prepare("INSERT INTO `user_answer` (test_id,question,your_answer)
                        VALUES (:t,:q,:a)");

                        $enterscore->bindparam(':t',$testid);
                        $enterscore->bindparam(':q',$question);
                        $enterscore->bindparam(':a',$answer);
                        $enterscore->execute();

                      }
                    }

                    ?>

... ...

<input type="hidden" name="test_id" value="'.$row2['test_id'].'">
<input type="radio" name="yanswer1" value="a"><span> '.$row2['a'].' </span><br>
<input type="radio" name="yanswer2" value="b"><span> '.$row2['b'].' </span><br>
<input type="radio" name="yanswer3" value="c"><span> '.$row2['c'].' </span><br>

... in other places by analogy ...在其他地方以此类推

edit: ... 编辑:

if (!empty($_POST['submit'])) {

... ...

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM