2016-07-03 134 views
0

我需要幫助將關聯數組存儲到codeigniter中的數據庫列中。關聯數組到數據庫的列

我有一個名爲輸入字段「車輛[]」,其實這一個這包括像品牌,型號,顏色的8場等

還用戶可以添加使用「添加其他」多一個多輛其中輸入字段相同車輛選項[]

,這裏是我的模型代碼笨

public function vehicle($new){ 

    $new = $this->input->post('vehicle'); 

    $data = array(
     'vehicle_number' => json_encode($new), 
     'make'  => json_encode($new), 
     'color'  => json_encode($new), 
     'color'  => json_encode(model), 
    ); 
    $this->db->insert('vehicles_tbl', $data); 

這種方式存儲在數據庫中的一列的全部,他的數據,我怎麼能存儲在每個值數據庫的相關列。

My controller 

$this->vehicle_model->vehicle($new); 

my application

+1

Codeigniter文檔是否不通過如何使用數據庫?順便說一句。你的代碼沒有意義。在同一個數組中有兩個名爲「color」的數組鍵。第二個會覆蓋第一個,爲什麼在將數據保存到數據庫之前「json_encode()」數據? –

+0

在CI的處理DB-queries的方式上看起來似乎不像他們那樣使用準備好的語句,但有自己的「查詢綁定」實現,這是足夠理由放棄該框架......或包括另一個安全的數據庫庫。 –

+0

@ Magnus Eriksson我有8個輸入字段(品牌,顏色,底盤,型號,發動機,編號,輪胎,電池)都被命名爲車輛[],默認情況下,如果用戶擁有更多車輛,則可以添加1輛車。用戶添加功能可以添加具有相同區域的其他車輛的詳細信息。我想我保存這個數組的數據尊重列 – user1419170

回答

0

你應該像這樣的代碼
//視圖

< input type="text" name="vehicle_number[]"> 
< input type="text" name="make[]"> 
< input type="text" name="color[]"> 
< input type="text" name="model[]"> 

//型號

公共職能車輛(){

$new = $this->input->post('vehicle_number'); 



for ($i=0; $i <count($new) ; $i++) { 

    $data[] = array(
     'vehicle_number' => $_POST['vehicle_number'][$i], 
     'make'  => $_POST['make'][$i], 
     'color'  => $_POST['color'][$i], 
     'model'  =>$_POST['model'][$i], 
     ); 

} 

return $ this-> db-> insert_batch('vehicles_tbl',$ data);

+0

謝謝,但我有這樣的東西 user1419170

+0

你正在做錯事!我給你的解決方案 – Boominathan

+0

看看我的形象,我有一個功能,如果他們想要添加另一輛車。 就是這樣 默認v1 - 數字,模型,顏色等等,然後添加新的.....這將給相同的輸入框添加第二個車輛 – user1419170