2017-02-13 114 views
-1

我有2个表。一个是针对学生和一个主题的。我想从同一页面上的学生和科目表中提取数据。在学生1科目1科目2科目3前面。然后在学生2科目1科目2科目3前面。提交结果。 我已经这样做了。 比我不得不在第三张结果表中插入这个。我已成功将学生插入结果表格中。和科目。但在分数的时候,我无法插入。我使用了一个多维数组。我无法将标记数据插入到数组中。我怎样才能做到这一点? 让我来展示一些快照。 我的多维数组不工作,我不知道如何做到这一点。请帮助我。 这是一个详细的图:This is the detailed snapshot.如何插入使用for循环的多维数组

  // count students 
     $sql = "SELECT * FROM tb_students"; 
     $run = mysqli_query($mysqli,$sql); 
      $total_students = mysqli_num_rows($run); 
     $numbers=$total_students; 
     for($i=1;$i<=$numbers;$i++) 
     { 
     while ($rows = mysqli_fetch_assoc($run)) { 
      $id = $rows['student_id']; 
      $name = $rows['student_name']; 

     ?> 
     <tr> 
      <td>Name</td> 
      <td hidden><input type="text" value="<?php echo $id?>" name="student_id[]" /></td> 
      <td><?php echo $name ?> </td> 
     </tr> 
     <input type="hidden" value="<?php echo $numbers;?>" name="numbers" /> 
     <?php 

      $sel_sub = "SELECT * FROM subjects WHERE class_name = '1st year'"; 
      $run_sub = mysqli_query($mysqli,$sel_sub); 
      $total_sub = mysqli_num_rows($run_sub); 
      for ($k=0; $k < $total_sub ; $k++) { 
       while ($rows = mysqli_fetch_assoc($run_sub)) { 
        $sub_id = $rows['sub_id']; 
        $sub_name = $rows['sub_name']; 
       ?> 

        <tr> 
         <td><?php echo $sub_name; ?></td> 
         <td hidden><input type="" value="<?php echo $sub_id;?>" name="sub_id[]" /></td> 
         <input type="hidden" value="<?php echo $total_sub;?>" name="subject" /> 
         <td><input type="text" name="marks[][]" placeholder="Marks" /></td> 
        </tr> 
       <?php 
       } 
      } 
     ?>` 

,这是isnert查询

<?php 
$mysqli = mysqli_connect("localhost","salman","salman1214","shan"); 
if(mysqli_connect_errno()) 
    die("Connection failed".mysqli_connect_error()); 
$s = ''; 
    for($i=0;$i<$_POST['numbers'];$i++) 
{ 
    for($j=0;$j<$_POST['subject'];$j++) 
    { 
     $s = "insert into result(student_id,exam_name, subject_name, sub_marks) values"; 
     $s .="('".$_POST['student_id'][$i]."','".$_POST['exam_name']."','".$_POST['sub_id'][$j]."','".$_POST['marks'][$i][$j]."'),"; 
     $s = rtrim($s,","); 
     if(!mysqli_query($mysqli,$s)) 
    echo mysqli_error(); 
else 
    echo "Records Saved <br />"; 
     $sub_list = $_POST['marks'][$i][$j]; 
     echo $sub_list; 
    } 
} 




mysqli_close($mysqli);?> 
+1

请将问题中的任何相关代码作为文本发布,而不是截图。 – cteski

+0

[PHP:“注意:未定义的变量”,“注意:未定义的索引”和“注意:未定义的偏移量”的可能的重复](http://stackoverflow.com/questions/4261133/php-notice-undefined-variable- notice-undefined-index-and-notice-undef) –

+0

是什么意思?不明白 – shinzu

回答

0

我不想说,如果这种方式是最好的方式。

但是,你的问题是你正在使用循环中不应该的行。试试这个:

<?php 
$mysqli = mysqli_connect("localhost","salman","salman1214","shan"); 
if(mysqli_connect_errno()) 
    die("Connection failed".mysqli_connect_error()); 
$s = ''; 
$s = "insert into result(student_id,exam_name, subject_name, sub_marks) values"; 
for($i=0;$i<$_POST['numbers'];$i++) 
{ 
    for($j=0;$j<$_POST['subject'];$j++) 
    { 
     $s .="('".$_POST['student_id'][$i]."','".$_POST['exam_name']."','".$_POST['sub_id'][$j]."','".$_POST['marks'][$i][$j]."'),"; 
    } 
} 
$s = rtrim($s,","); 
if(!mysqli_query($mysqli,$s)) 
    echo mysqli_error(); 
else 
    echo "Records Saved <br />"; 


mysqli_close($mysqli);?>