2011-09-25 77 views
0

我想在數據庫表的一行上插入下面的php代碼(foreach),但插入後得到以下錯誤,我該怎麼辦?json_encode在數據庫中插入值的問題

值:

<div class="column"> 
    <input type="text" name="start_date[1][]" value="1111"> 
    <input type="text" name="end_date[1][]" value="1111"> 
    <input type="text" name="price_change[1][]" value="1111"> 
</div> 
<div class="column"> 
    <input type="text" name="start_date[2][]" value="2222"> 
    <input type="text" name="end_date[2][]" value="2222"> 
    <input type="text" name="price_change[2][]" value="2222"> 
</div> 
<div class="column"> 
    <input type="text" name="start_date[3][]" value="3333"> 
    <input type="text" name="end_date[3][]" value="3333"> 
    <input type="text" name="price_change[3][]" value="3333"> 
</div> 

PHP代碼:

$residence_ups_input = $this->input->post('start_date'); 
    $residence_upe_input = $this->input->post('end_date'); 
    $residence_upc_input = $this->input->post('price_change'); 
    var_dump($residence_ups_input); // output this is: nobool(false) 
    $residence_p = array(); 
    foreach ($residence_ups_input as $idx => $name) { //line 134   
     $residence_p[] = array(
      'start_date' => $residence_ups_input[$idx], 
      'end_date' => $residence_upe_input[$idx], 
      'price_change' => $residence_upc_input[$idx] 
     ); 
    } 
    ; 
    $data = array(
     //'name' => $this -> input -> post('name'), 
     'residence_p' => json_encode($residence_p) 
    ); 
    $this->db->insert('tour_foreign', $data); 

錯誤:

A PHP Error was encountered
Severity: Warning
Message: Invalid argument supplied for foreach()
Filename: inser.php
Line Number: 134

+0

請參閱我的**值**在上面的鱈魚,他們是陣列。 –

回答

0

更改所有列:

<div class="column"> 
    <input type="text" name="start_date[1][]" value="1111"> 
    <input type="text" name="end_date[1][]" value="1111"> 
    <input type="text" name="price_change[1][]" value="1111"> 
</div> 
.... 

到:

<form method="post"> 
<div class="column"> 
    <input type="text" name="start_date[]" value="1111"> 
    <input type="text" name="end_date[]" value="1111"> 
    <input type="text" name="price_change[]" value="1111"> 
</div> 
.... 

</form> 
+0

我改變了它們,但在'var_dump'中仍然有相同的錯誤和相同的輸出。 !? –

+0

你的代碼有問題,因爲我已經測試過它的工作原理,你有'

'tag?看到更新 – tttony

+0

謝謝,完成。 –

0

更換

foreach ($residence_ups_input as $idx => $name) { 

foreach (get_object_vars($residence_ups_input) as $idx => $name) { 

你傳遞一個對象的foreach,它想關聯數組。從現在開始做

json_decode($string, true) 

,而不是

json_decode($string) 

和訪問這樣的變量:

$var['key']; 

,而不是 $ VAR->鍵

+0

我沒有在代碼'json_decode($ string)'中使用'codeigniter'。這是真的 –

+0

我很抱歉,但我不熟悉'codeigniter',那是什麼? –

+0

轉到此處:http://codeigniter.com/ –

0

$residence_ups_input變量不是陣列

使用此代碼:

array_push($residence_ups_input,$this->input->post('start_date')); 
array_push($residence_upe_input,$this->input->post('end_date')); 
array_push($residence_upc_input,$this->input->post('price_change')); 

得到的值,然後使用foreach()

+0

這是數組,請在我的文章中查看我的html代碼。什麼是問題? –

+0

$ residence_ups_input是一個僅包含price_change的數組 –