【问题标题】:how to insert multuple row to mysql database如何在mysql数据库中插入多行
【发布时间】:2013-04-14 07:18:53
【问题描述】:

我有某个学期的上传结果表。我收集了某个学期的所有科目和学生名单。但我的问题是我无法将结果插入数据库。只插入一行,

控制器

    $data=array();
    for($i=0;$i<count($_POST['Number']);$i++){
            if($_POST['Number'][$i] != ''){
                $data=array(
                        'Id'=>$_POST['id'][$i],
                        'Dept'=>$_POST['Dept'][$i],
                        'SubjectCode'=>$_POST['sCode'][$i],
                        'SubjectName'=>$_POST['sName'][$i],
                        'Semister'=>$_POST['Semister'][$i],
                        'MidNumber'=>$_POST['Number'][$i]
                        );
                $this->load->model('Upload_Result_model');
                $this->Upload_Result_model->upload_midResult($data);
            }
    }

表格:

<table>
<tr>
    <th>Student ID</th>
    <?php foreach($subjects as $s):?>
    <th><?php echo $s->subjectName;   echo "<br>";   echo "(".$s->subjectCode.")"; ?></th>
    <?php foreach($student as $st):?>
    <input type='hidden' id='id[]' name='id[]' value='<?php echo $st->Id;?>'>
    <?php endforeach;?>
    <input type='hidden' name='Dept[]' id='Dept[]' value=<?php echo $Dept;?>>
    <input type='hidden' name='Semister[]' id='Semister[]' value=<?php echo $Semister;?>>
    <input type='hidden' id='sCode[]' name='sCode[]' value='<?php echo $s->subjectCode?>'>
    <input type='hidden' id='sName[]' name='sName[]' value='<?php echo $s->subjectName?>'>
    <?php endforeach;?>
</tr>
<?php foreach($student as $st):?>
<tr>
    <td><?php echo $st->Id?></td>
    <?php for($i=0;$i<count($subjects);$i++):?>
    <td><input type='text' size='7' id='Number[]' name='Number[]'/></td>
    <?php endfor;?>
</tr>

如果有人能解决这个问题,对我会有很大帮助

【问题讨论】:

    标签: php html mysql codeigniter-2 codeigniter-form-helper


    【解决方案1】:

    我不认为 html 表单元素会以数组形式出现在 php 中。尝试执行print_r($_POST); 以查看传递的变量及其值。它们可能只是以逗号分隔。

    我认为您可能需要执行$_POST['id']=explode(',',$_POST['id']); 之类的操作来解决您的问题

    Numbers 变量还有其他问题,您应该研究一下

    【讨论】:

      【解决方案2】:

      我觉得

          foreach($student as $st):
      

      应该在 .现在您打开多行,但不关闭它们。此外,ID 在 2 个 for 循环内,因此它们比其他元素多,我不确定这是否是您尝试做的。

      所以,如果没问题,你可以试试:

          $Numbers = @$_POST['Number'];
          $ids = @$_POST['id'];
      
          foreach($Numbers as $a => $b)
          {
            if($Numbers[$a]!='')
            { 
               $data=array(
                          'Id'=>$ids[$a];, ... }
            }
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-08-11
        • 1970-01-01
        • 2012-11-16
        • 2019-08-17
        • 1970-01-01
        • 2014-02-10
        相关资源
        最近更新 更多