2017-09-29 17 views
1

すべての配列に値がある場合、dbに配列を挿入するコードがあります。問題は、1つ以上の配列に値がない場合でも、dbに挿入されますが、もちろんnull値があることです。誰かが、値を持っているすべてのsamp_idがdbにのみ挿入され、null値の行を持たないように条件を作成する方法を教えてください。前もって感謝します。Codeigniter - foreach条件をdbに挿入

これは私のコントローラです:

public function save_section_test1() { 
    //echo '<pre>';print_r($_POST);die; 
    $samp = $this->input->post('samp'); 
    $quantity = $this->input->post('quantity'); 
    $specify = $this->input->post('specify'); 

    $save_sect = array(
     array(
      'emp_id' => $this->input->post('emp_id'), 
      'section_id' => $this->input->post('section'), 
      'test_id' => $this->input->post('drop_molec'), 
      'samp_id' => $samp[0], 
      'quantity' => $quantity[0], 
      'specification' => $specify[0], 
     ), 
     array(
      'emp_id' => $this->input->post('emp_id'), 
      'section_id' => $this->input->post('section'), 
      'test_id' => $this->input->post('drop_molec'), 
      'samp_id' => $samp[1], 
      'quantity' => $quantity[1], 
      'specification' => $specify[1], 
     ), 
     array(
      'emp_id' => $this->input->post('emp_id'), 
      'section_id' => $this->input->post('section'), 
      'test_id' => $this->input->post('drop_molec'), 
      'samp_id' => $samp[2], 
      'quantity' => $quantity[2], 
      'specification' => $specify[2], 
     ), 
    ); 
    foreach ($save_sect as $save){  
     $this->db->insert('tblsavesection', $save); 
    } 
    redirect(base_url('user/show')); 
} 

答えて

1

なぜあなたはあなたがキーsampl_idの値を持っていないサブアレイを削除するにはinsert_batch()

を持っているとき、あなたはarray_filter()

を使用することができます foreachが必要なのか

例:

$data = array_filter($array,function($item) {return !empty($item['sampl_id']);}); 

// then insert 
if(!empty($data)){ 
    $this->db->insert_batch('your_table', $data); 
}else{ 
    echo 'seems not even single item has valid sampl_id'; 
} 
0

更新。配列の数に応じてdbに挿入できるようになりました。問題は今、値がないすべての配列が "Undefined offset"であるというエラーメッセージが表示されることです。しかし、db関数への挿入はうまく動作します。私のforeachへ

更新 foreachの($保存などの$ save_sect){

 if (!empty($save['samp_id'])){ 
      $this->db->insert('tblsavesection', $save); 
     } 
    } 
関連する問題