2017-02-27 98 views
1

我有一个插入最后一个id的问题。当发送图像数据到模型,我已经能够。但是当他们在这里与insert_id()我合并时遇到麻烦。插入许多图像和其他数据到数据库中,并得到插入最后一个id与codeigniter

我的观点:

<?php echo form_open_multipart('produk_adm/proses_tambah_produk');?> 
     <div class="col-md-6 input group"> 
     <label>Product Name :</label> 
     <input type="text" name="name" class="form-control" id="name" required> 
     <br> 
     </div> 
     <div class="col-md-6 input group"> 
     <label>Image :</label> <i style="color:red;">*max 1 MB</i> 
     <input type="file" name="image" class="form-control" id="gambar"> 
     <br> 
     </div> 
     <div class="col-md-6 input group"> 
     <label>Point :</label> 
     <input type="number" name="point" class="form-control" id="point" value="0" required> 
     <br> 
     </div> 
     <div class="col-md-6 input group"> 
     <label>Additional images :</label> <i style="color:red;">*max 1 MB</i> 
     <input type="file" name="add[]" class="form-control" id="gambar"> 
     <br> 
     </div> 
     <div class="col-md-6 input group"> 
     <label>Additional images :</label> <i style="color:red;">*max 1 MB</i> 
     <input type="file" name="add[]" class="form-control" id="gambar"> 
     <br> 
     </div> 
     <div class="col-md-6 input group"> 
     <label>Additional images :</label> <i style="color:red;">*max 1 MB</i> 
     <input type="file" name="add[]" class="form-control" id="gambar"> 
     <br> 
     </div> 
    <?php echo form_close();?> 

我的控制器:

function proses_tambah_produk(){ 
    $config['upload_path']   = 'assets/img/produk'; 
    $config['allowed_types']  = 'gif|jpg|png|jpeg'; 
    $config['max_size']    = 1000; 
    $config['overwrite']    = TRUE; 
    //$config['max_width']   = 1024; 
    //$config['max_height']   = 768; 
    $this->load->library('upload', $config); 

    $files = $_FILES; 
    $count = count($_FILES['add']['name']); 
    for($i=0; $i<$count; $i++) 
      { 
      $_FILES['add']['name']= $files['add']['name'][$i]; 
      $_FILES['add']['type']= $files['add']['type'][$i]; 
      $_FILES['add']['tmp_name']= $files['add']['tmp_name'][$i]; 
      $_FILES['add']['error']= $files['add']['error'][$i]; 
      $_FILES['add']['size']= $files['add']['size'][$i]; 
      $this->upload->do_upload('add'); 
      $upload_data = $this->upload->data(); 
      $name_array[] = $upload_data['file_name']; 
      $fileName = $upload_data['file_name']; 
      $images[] = $fileName; 

      $result = $files['add']['name'][$i]; 

      //print_r($result); 
      } 



    $target = $this->input->post('nama'); 
     if($this->input->post()){ 

       $this->upload->do_upload('image'); 
       $imagex = $_FILES['image']['name']; 
       $data = $this->input->post(); 
       $data['nama_depan'] = $this->data['nama_depan']; 

       $this->produk_adm->add($data, $imagex, $result); 

       log_helper("product", "adding Product ".$target.""); 
       redirect('trueaccon2194/produk'); 
      }else{ 
       log_helper("product", "failed"); 
       redirect('trueaccon2194/produk/tambah_produk'); 
      } 
} 

和我的模型:

function add($data, $imagex, $result){ 

    $data_produk = array(
     'nama_produk' => $data['nama'], 
     'slug'   => $data['slug'], 
     'milik'   => $data['miliknya'], 
     'jenis'   => $data['jenisnya'], 
     'artikel'  => $data['artikel'], 
     'merk'   => $data['merknya'], 
     'keterangan' => $data['editor1'], 
     'tags'   => $data['tags'], 
     'kategori'  => $data['kategori'], 
     'parent'  => $data['parent'], 
     'harga_retail' => $data['retail'] - ($data['diskon']/100 * $data['retail']), 
     'harga_odv'  => $data['odv'], 
     'harga_net'  => $data['retail'] - ($data['diskon']/100 * $data['retail']), 
     'diskon'  => $data['diskon'], 
     'stok'   => $data['stok'], 
     'berat'   => $data['berat'], 
     'gambar'  => $imagex, 
     'point'   => $data['point'], 
     'status'  => $data['aktif'], 
     'dibuat'  => $data['nama_depan'], 
     'tgl_dibuat' => date('Y-m-d H:i:s'), 
    ); 
    $this->db->insert('produk', $data_produk); 

// MY PROBLEM HERE // 
    $last_insert_id = $this->db->insert_id(); 
    $count = count($result); 
    for($i=0; $i<$count; $i++){ 
     $results = array(
      'id_product' => $last_insert_id, 
      'image_product' => $result[$i], 
      ); 
$this->db->insert('product_image_additional', $results);return $this->db->insert_id(); 
     //print_r($results); 
    } 

} 

如何获得多个图像名称并投入阵列和INSERT_ID()?

回答

0

需要一个输入。

<input type="file" name="add[]" class="form-control" id=""> 

那是返回文件数组。

$count = count($_FILES['add']['name']); 
    for($i=0; $i<$count; $i++) 
      {enter code here 
      } 

它是正确的。

可以使用

$result=array(); 
$result_image_name=array(); 
每次插入后

数据库

$result[]=$this->db->insert_id() 

然后返回$ result数组

$uploaded=$this->upload->do_upload('add'); 
$result_image_name[]=$uploaded['file_name']; 

我希望这个解决方案的工作!

相关问题