2017-02-13 60 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);?>