2017-02-24 4 views
0

データをループしてデータベースに保存する際に問題があります。この挿入データの結果には1つのみが含まれます。 insert_batch()でのinsert()の違いは何ですか?私のキーボードのCTRL + Kは機能しません。複数の画像データをコードシニターでデータベースに挿入

私の見解:

<?php echo form_open('proses_tambah_produk')?> 
<input type="file" id="gambar2" name="gambar_tambah[]" class="form-control" style="width:90%;display:initial;margin-right:10px;margin-bottom:5px;"> 
<label style="background-color:red;color:white;border-radius:50%;padding:3px;" id="idGambar2" class="hapus_gambar glyphicon glyphicon-remove"></label> 
<input type="file" id="gambar2" name="gambar_tambah[]" class="form-control" style="width:90%;display:initial;margin-right:10px;margin-bottom:5px;"> 
<label style="background-color:red;color:white;border-radius:50%;padding:3px;" id="idGambar2" class="hapus_gambar glyphicon glyphicon-remove"></label> 
<?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['gambar_tambah']['name']); 
     for($i=0; $i<$count; $i++) 
       { 
       $_FILES['gambar_tambah']['name']= $files['gambar_tambah']['name'][$i]; 
       $_FILES['gambar_tambah']['type']= $files['gambar_tambah']['type'][$i]; 
       $_FILES['gambar_tambah']['tmp_name']= $files['gambar_tambah']['tmp_name'][$i]; 
       $_FILES['gambar_tambah']['error']= $files['gambar_tambah']['error'][$i]; 
       $_FILES['gambar_tambah']['size']= $files['gambar_tambah']['size'][$i]; 
       $this->upload->do_upload('gambar_tambah'); 
       $upload_data = $this->upload->data(); 
       $name_array[] = $upload_data['file_name']; 
       $fileName = $upload_data['file_name']; 
       $images[] = $fileName; 

       } 
       $fileName = $images; 

      $tambahan = $_FILES['gambar_tambah']['name']; 

      $this->produk_adm->add($data, $gambar, $tambahan); 

    } 

私のモデル:

function add($tambahan){ 
     $last_insert_id = $this->db->insert_id(); 

     $data_gambar = array(
      'id_produk' => $last_insert_id, 
      'gambar' => $tambahan, 
     ); 
     $this->db->insert('produk_image', $data_gambar); 
     return $this->db->insert_id(); 
    } 
+0

であなただけの、クライアント側のJavaScript/HTML/CSSのために生きコードスニペット機能を使用することができます各パネル上の対応するラベルに従って明白でなければならない。 – Sparky

+0

あなたが$ this-> produk_adm-> add($ data、$ gambar、$ tambahan)を使用したモデルを呼び出すとき。 –

答えて

0

あなたが二回同じID名を使用することはできません。 id値は、すべてのフィールドで一意でなければなりません。アップロードするコードが間違っている $_FILES['gambar_tambah']['name']= $files['gambar_tambah']['name'][$i]; $image_name = $_FILES['gambar_tambah']['name']; のような変数に値を割り当てて、ループが実行されるたびにデータベースに挿入したり、配列を作成して挿入することはできませんimplode関数によって1つのフィールドに変換されます。

2
$filesCount = count($_FILES['photo_gallery']['name']);  
for($i = 0; $i < $filesCount; $i++){ 
        $_FILES['gambar_tambah']['name'] = $_FILES['photo_gallery']['name'][$i]; 
        $_FILES['gambar_tambah']['type'] = $_FILES['photo_gallery']['type'][$i]; 
        $_FILES['gambar_tambah']['tmp_name'] = $_FILES['photo_gallery']['tmp_name'][$i]; 
        $_FILES['gambar_tambah']['error'] = $_FILES['photo_gallery']['error'][$i]; 
        $_FILES['gambar_tambah']['size'] = $_FILES['photo_gallery']['size'][$i]; 
        $file_name=$this->crud->upload_file('gambar_tambah',$upload_image_path); 
        $image_data[$i]['image'] = $file_name; 
        $this->crud->add('table_name',$image_data[$i]); 
       } 
0

モデルを呼び出すときは、3つのパラメータを使用し、モデルでは1つを使用しています。

使用

$this->load->model('produk/adm'); 
$this->produk_adm->add($tambahan); 

代わりの

$this->produk_adm->add($data, $gambar, $tambahan); 

とモデル

function add($tambahan){ 
    $last_insert_id = $this->db->insert_id(); 

    $data_gambar = array(
     'id_produk' => $last_insert_id, // if it is auto increment in db, remove this line 
     'gambar' => $tambahan, 
    ); 
    $this->db->insert('produk_image', $data_gambar); 
    return $this->db->insert_id(); 
} 
関連する問題