繁体   English   中英

批量插入代码点火器

[英]Batch insert codeigniter

我只想问一下插入批处理中我在做什么错,这是我的控制器

            $ctr = count($this->input->post('txt_equipb'));

            for($i = 0; $i < $ctr; $i++){
                $data2s[] = array('EquipmentName' => $this->input->post('txt_equipb')[$i],
                            'EquipmentType' => $this->input->post('txt_equiptype')[$i],
                            'RequirementID' => $id2);
            }

            $cmd2 = $this->Software_model->add_equip($data2s);

模型

    public function add_equip($data2s)
    {
        foreach($data2s as $d){
            $data2[] = array('EquipmentName' => $d['EquipmentName'],
            'EquipmentType' => $d['EquipmentType'],
            'RequirementID' => $d['RequirementID']);
    }

         return $this->db->insert_batch('equipment', $data2);
    }

问题是它仅插入第一批插入,而其余未保存在数据库中

已编辑

array(1) { [0]=> array(3) { ["EquipmentName"]=> string(7) "Brand G" 
["EquipmentType"]=> string(19) "Measuring equipment" ["RequirementID"]=> 
string(2) "45" } } 

我得到以下结果,它仅捕获第一个输入,我想知道为什么我为文本框使用的命名是txt_equipb []

编辑视图:

      <div class="row">
        <div class="col-md-4 col-md-offset-1" id="first">
            <label>Equipment Brand</label>    
            <div class="input-group">
                <span class="input-group-btn">
                    <button type="button" id="firstbtn" class="btn btn-primary"><i class="glyphicon glyphicon-plus"></i></button>
                </span>

                    <input class="form-control target" id="eb" name="txt_equipb[]" placeholder="Enter Equipment Brand" required oninvalid="this.setCustomValidity('Please enter the Equipment Brand.')" oninput="setCustomValidity('')"/>

            </div>                
        </div>
    <br>
    <div class="row">
        <div class="col-md-4 col-md-offset-1" id="third">
            <label>Equipment Type</label>    
            <div class="input-group">
                <span class="input-group-btn">
                    <button type="button" id="thirdbtn" class="btn btn-primary"><i class="glyphicon glyphicon-plus"></i></button>
                </span>

                <input class="form-control" id="type" name="txt_equiptype[]" placeholder="Enter Equipment Type" required />

            </div>   
        </div>

这是我在视图中使用的命名格式。

尝试这样的代码,希望对您有所帮助

  $ctr = count($this->input->post('txt_equipb'));
  $data2s = array();
        for($i = 0; $i < $ctr; $i++){
            $data2s[$i] = array('EquipmentName' => $this->input->post('txt_equipb'),
                        'EquipmentType' => $this->input->post('txt_equiptype'),
                        'RequirementID' => $id2);
        }

        $cmd2 = $this->Software_model->add_equip($data2s);

模型

 public function add_equip($data2s)
{
     return $this->db->insert_batch('equipment', $data2);
}

试试这个希望它会给你一个想法

  public function yourfunctionname()
{

$EquipmentName = $this->input->post('txt_quipb');
$EquipmentType = $this->input->post('EquipmentType');

$value = array();

for($i=0; $i<count($EquipmentName); $i++)
{
  $value[$i] = array(

    'EquipmentName' =>  $EquipmentName[$i],
    'EquipmentType' =>  $EquipmentType[$i],
    'RequirementID' => $id
  );
}

$this->db->insert_batch('table_name',$value);

redirect(base_url('url'));
exit();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM