2017-03-07 60 views
1

我遇到了一個問題。我想插入MySQL的數據表多行多檢查值....但是當我將其插入所有存儲在一排... 如何解決呢? 我的型號是:在codeigniter中插入多行中的多行檢查值

public function apply_for_work_check() 
    { 
    $variable = $this->input->post('Infrashtructure'); 
    $data = array(
    'id' =>null, 
    'works_id' => 1, 
    'infrashtructure_name' => json_encode(implode(",", $variable)), 
    ); 
    $result=$this->db->insert('infrashtructure_txn_info',$data); 
    if($result) 
    { 
    return TRUE; 
    } 
    else 
    { 
    return FALSE; 
    } 
    } 
+0

用'破滅()' – JustOnUnderMillions

+0

使用'的print_r($變量)'請出示的'$ variable'內容 –

回答

1

如下更改方法:

public function apply_for_work_check() 
{ 
    $variable = $this->input->post('Infrashtructure'); 
    foreach ($variable as $key => $value) { 
     $data = array(
      'id'     => null, 
      'works_id'    => 1, 
      'infrashtructure_name' => $value, 
     ); 
     $result = $this->db->insert('infrashtructure_txn_info', $data); 
    } 
    if ($result) { 
     return true; 
    } else { 
     return false; 
    } 
}  
1
public function apply_for_work_check() 
{ 
$result=array(); 
$variable = $this->input->post('Infrashtructure'); 
foreach($variable as $var){ 
    $data = array('id' =>null,'works_id' => 1, 
        'infrashtructure_name' => json_encode($var)); 
    $result[]=$this->db->insert('infrashtructure_txn_info',$data); 
} 

if(count($result)==array_sum($result)) {#checks if all was TRUE 
    return TRUE; 
} else { 
    return FALSE; 
} 
} 
+0

感謝兄弟,現在是做'insert'在'$ variable'每個值不是一次工作...你在foreach循環中做了一個改變... –

+0

應該將它標記爲答案 –

0
$data = explode(",", $variable); 

在此之後。

'infrashtructure_name' => json_encode(implode(",", $data))