如何使用for循环插入多维数组

时间:2017-02-13 18:20:10

标签: php mysqli

我有2张桌子。一个是学生和一个科目。我想从同一页面上的学生和科目表中获取数据。在学生1面前1科目2科目3.然后在学生2科目1科目2科目3.是提交成果。 我做到了这一点。 比我必须在第3个结果表中插入这个。我已成功将学生插入结果表中。和科目。但在标记时,我无法插入。我使用了一个多维数组。我无法将标记数据插入数组。我怎样才能做到这一点? 让我展示一些快照。 我的多维数组不起作用,我不知道该怎么做。请帮助我。 这是一张详细的照片:This is the detailed snapshot.

         // 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 个答案:

答案 0 :(得分:0)

我不想说这种方式是否是最佳方式。

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

{{1}}