[英]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.