如何使用 Codeigniter 将数组(多行)插入 Mysql? [英] How to Insert Arrays (Multiple rows) into Mysql using Codeigniter?
问题描述
我搜索了很多,我发了很多次,但我没有得到任何正确的答案.
这是我的查看页面 - 查看
这里我写了一个查询,用于为特定的ref_no 动态添加字段,所以请帮我模型和控制器
<?php echo form_open(base_url().'sample/invoice');?><label for="type" class="control-label">Type</label><div><?php echo form_input(array('id'=>'type','name'=>'type'));?></div><label for="ref" class="control-label">REF</label><div><?php echo form_input(array('id'=>'ref','name'=>'ref'));?></div><label for="title" class="control-label">TITLE</label><div><?php echo form_input(array('id'=>'title','name'=>'title'));?></div><div id="description"><p id="add_field">添加说明</p></div><label for="doc" class="control-label">支持文档</label><div><?php echo form_input(array('id'=>'doc','name'=>'attach','type'=>"file"));?></div><input id="btn_add" name="btn_add" type="submit" class="btn btn-primary" value="保存"/><脚本>无功计数 = 0;$(document).ready(function() {$('p#add_field').click(function(){计数 += 1;var html='<strong>Description '+ count +'</strong>'+'<input id="description'+ count +'"name="description[]'+'" type="text"/>'+'<input id="description'+ count +'"name="voucher_no[]'+'" type="text"/>'+'<input id="description'+ count+'"name="price[]'+'" type="text"/><br/>';$('#description').append(html);});});
这是我的控制器:
$data1 = 数组('invoice_type' =>$this->input->post('type'),'reference_no' =>$this->input->post('ref'),'des_title' =>$this->input->post('title'),);$data2 = 数组('reference_no' =>$this->input->post('ref'),'说明' =>$this->input->post('des'),);$this->sample_model->insert_entry($data1, $data2);
这是我的模型:
function insert_entry($data1, $data2) {$this->db->insert('myinvoice', $data1);$this->db->insert('invoice_description', $data2);}
我想要的是为一个参考号插入多个描述.当我插入单个数据时,myinvoice 是父表,invoice_description 是子表,但我想插入多个描述
首先,我们不能在同一页面中多次使用相同的 id.并在控制器中
function abc(){$description = $this->input->post("description");$voucher_no = $this->input->post("voucher_no");$price = $this->input->post("price");$i = 0;foreach($description as $row){$data['description'] = $description[$i];$data['voucher_no'] = $voucher_no[$i];$data['price'] = $price[$i];$this->db->insert("your_table",$data);$i++;}}
希望以上代码对您有所帮助.您可以直接插入控制器,也可以调用模型函数来进行插入.
i have search alot and i have post somany times but i didnt get any proper answer.
This is my view page - View
here i have write a query for add fields dynamically for particular ref_no so help me for model and controller
<div id="login_form">
<?php echo form_open(base_url().'sample/invoice'); ?>
<label for="type" class="control-label">Type</label>
<div><?php echo form_input(array('id'=>'type','name'=>'type'));?></div>
<label for="ref" class="control-label">REF</label>
<div><?php echo form_input(array('id'=>'ref','name'=>'ref'));?></div>
<label for="title" class="control-label">TITLE</label>
<div><?php echo form_input(array('id'=>'title','name'=>'title'));?></div>
<div id="description"><p id="add_field">ADD DESCRIPTION</p></div>
<label for="doc" class="control-label">Support Doc</label>
<div><?php echo form_input(array('id'=>'doc','name'=>'attach','type'=>"file"));?></div>
<input id="btn_add" name="btn_add" type="submit" class="btn btn-primary" value="Save" />
</div>
<script>
var count = 0;
$(document).ready(function() {
$('p#add_field').click(function(){
count += 1;
var html='<strong>Description '+ count +'</strong>'+'<input id="description'+ count +'"name="description[]'+'" type="text" />'+'<input id="description'+ count +'"name="voucher_no[]'+'" type="text" />'+'<input id="description'+ count +'"name="price[]'+'" type="text" /><br />';
$('#description').append(html);
});
});
</script>
This is My Controller :
$data1 = array(
'invoice_type' => $this->input->post('type'),
'reference_no' => $this->input->post('ref'),
'des_title' => $this->input->post('title'),
);
$data2 = array(
'reference_no' => $this->input->post('ref'),
'description' => $this->input->post('des'),
);
$this->sample_model->insert_entry($data1, $data2);
This My MOdel :
function insert_entry($data1, $data2) {
$this->db->insert('myinvoice', $data1);
$this->db->insert('invoice_description', $data2);
}
What i want is insert mutiple descriptions for one reference number. myinvoice is parent table and invoice_description is child table when i insert single data its works perfectly but i want insert multiple descriptions
first of all we cannot use same id more than once in the same page. And in controller
function abc(){
$description = $this->input->post("description");
$voucher_no = $this->input->post("voucher_no");
$price = $this->input->post("price");
$i = 0;
foreach($description as $row){
$data['description'] = $description[$i];
$data['voucher_no'] = $voucher_no[$i];
$data['price'] = $price[$i];
$this->db->insert("your_table",$data);
$i++;
}
}
I hope the above code helps you. You can directly insert in controller or you can call a model function to do that insertion.
这篇关于如何使用 Codeigniter 将数组(多行)插入 Mysql?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!