【问题标题】:codeigniter array and loop to insert for multiple datacodeigniter 数组和循环插入多个数据
【发布时间】:2014-11-27 00:23:13
【问题描述】:

我想制作发票表格。出于这个原因,我需要一次插入多个数据。例如,我想一次输入 db 5 类别的销售或购买产品。但我对 insert_batch 不感兴趣。我尝试了,但我在 db 中得到了一些空值。

我的模特是:

 <?php
 class Purchase_model extends CI_Model{

  public function purchase(){


  $price = $this->input->post('price');
  $quantity = $this->input->post('quantity');
  $date = $this->input->post('date');
     $vendor_name = $this->input->post('vendor_name');
     $model = $this->input->post('model');

    $invoice_no = $this->input->post('invoice');
    //$temp = count($this->input->post('vendor_name'));
  for($i=0; $i<10; $i++){  
    $data = array(
     'date'=>$date[$i], 
     'vendor_name'=>$vendor_name[$i],
     'model'=>$model[$i],
     'price' =>$price[$i], 
     'purchase_quantity'=>$quantity[$i],
     'amount'  =>$price[$i]*$quantity[$i],
     'invoice_no'=>$invoice_no[$i]
     );

      $insert = $this->db->insert('purchase',$data);
     return $insert; }
      }}

我的控制器是:

public function purchase(){

    if($this->Purchase_model->purchase()){

        $this->session->set_flashdata('Success', 
            'You are entered data successfully');
        redirect('home/purchase_form');
    }
}

以我的观点为例:

  <?php echo form_label ('Price:'); ?>   
      <select name="price[]" id="price" class="input-xlarge">

      </select>



      <?php echo form_label ('Quantity'); ?> 

      <?php 
            $data = array ('name'      =>'quantity[]',
           'class'     =>'input-xlarge',
           'value'     => set_value('quantity')); ?>

      <?php echo form_input ($data); ?>

      <?php echo form_label ('Price:'); ?>   
           <select name="price[]" id="price2" class="input-xlarge">

           </select>

      <?php echo form_label ('Quantity'); ?> 

      <?php 
           $data = array ('name'      =>'quantity[]',
           'class'     =>'input-xlarge',
           'value'     => set_value('quantity')); ?>

      <?php echo form_input ($data); ?>

请帮忙。

【问题讨论】:

  • 你得到哪些值 Null ?请说明!
  • 您的视图中没有“供应商”元素!请显示您的视图层的完整脚本!

标签: php mysql codeigniter


【解决方案1】:

问题已解决。我的模型中的错误。正确的型号是

public function purchase(){

$data = array();
$temp = count($this->input->post('quantity'));

 for($i=0; $i<$temp; $i++){

$invoice_no  =   $this->input->post('invoice');
$date        =   $this->input->post('date');
$price       =   $this->input->post('price');
$quantity    =   $this->input->post('quantity');
$vendor_name =   $this->input->post('vendor_name');
$model       =   $this->input->post('model');
  if(  $quantity[$i]!= '') {    
$data[] = array(
     'date'=>$date, 
     'vendor_name'=>$vendor_name[$i],
     'model'=>$model[$i],
     'price' =>$price[$i], 
     'purchase_quantity'=>$quantity[$i],
     'amount'  =>$price[$i]*$quantity[$i],
     'invoice_no'=>$invoice_no
     );} }

      $insert = count($data);

            if($insert)
            {
            $this->db->insert_batch('purchase', $data);
            }

            return $insert;
      } 

感谢每一位试图帮助我的人。

【讨论】:

    猜你喜欢
    • 2018-06-29
    • 1970-01-01
    • 1970-01-01
    • 2021-03-07
    • 2021-11-24
    • 2018-06-28
    • 2019-10-18
    • 2017-02-15
    • 2014-11-24
    相关资源
    最近更新 更多