簡體   English   中英

如何使用for循環插入多維數組

[英]how to insert multidimensional array using for loop

我有2張桌子。 一種是給學生的,一種是針對學科的。 我想從同一頁面上的學生和科目表中獲取數據。 在學生1 科目1 科目2 科目3 前面。然后在學生2 科目1 科目2 科目3 前面。提交結果。 我已經這樣做了。 比我必須在第三個結果表中插入它。 我已經成功地在結果表中插入了學生。 和科目。 但是在標記的時候,我無法插入。 我使用了一個多維數組。 我無法將標記數據插入數組。 我怎樣才能做到這一點? 讓我展示一些快照。 我的多維數組不起作用,我不知道該怎么做。 請幫幫我。 這是詳細圖片: 這是詳細快照。

         // 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 
                }
            }
         ?>`

這是 isert 查詢

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

我不想說這種方式是否是最好的方式。

但是,您的問題是您正在使用循環中不應該使用的行。 嘗試這個:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM