2017-09-30 1 views
0

J'essaie d'insérer un tableau de champ d'entrée généré dynamiquement dans mon DB. Le problème est que l'insertion est perturbée pendant l'insertion. Certains enregistrements sont insérés dans les mauvaises lignes lorsque certains champs du formulaire sont laissés vides. J'ai rouge quelque part que je dois indexer mes tableaux correctement. je ne sais pas comment faire ça. Existe-t-il une meilleure façon de le faire? ou existe-t-il un moyen de réparer mon code?Comment puis-je insérer un tableau de champs d'entrée dans mysql avec php

J'ai cherché partout de l'aide et je n'ai trouvé aucun. J'apprécierais vraiment si je pourrais obtenir l'aide des experts ici.

est ici la forme

     <?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> 


          '; 




          } 
         } 



         ?> 

Voici le fichier qui traite la forme

    <?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(); 

         } 
        } 

        ?> 
+0

ce que vous entendez par tableau d'entrée. Pourriez-vous nous montrer l'entrée d'échantillon et la production attendue? – Ravi

+0

J'ai un tableau de cases à cocher, radio et texte dans un formulaire html et j'essaie d'insérer les valeurs tha dans le tableau en db – Achilles

Répondre

0

...

<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> 

... dans d'autres endroits par analogie

edit: ...

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

...