2011-09-17 106 views
0

我想從數組中插入幾個項目到數據庫中foreach。我收到一個錯誤 Message: Undefined offset。有人能幫我弄清楚是什麼造成的?用'foreach`從數組插入數組到數據庫

錯誤:

A PHP Error was encountered 
Severity: Notice 
Message: Undefined offset: 0 
Line Number: 127 

A PHP Error was encountered 
Severity: Notice 
Message: Undefined offset: 0 
Line Number: 128 

A PHP Error was encountered 
Severity: Notice 
Message: Undefined offset: 0 
Line Number: 129 

PHP:

<?php 

$guide_input = $this->input->post('guide'); 
$airline_input = $this->input->post('airline'); 

$name_r_input = $this->input->post('name_r'); 
$units_input = $this->input->post('units'); 
$price_change_input = $this->input->post('price_change'); 

$guide = array(); 
$airline = array(); 
$date_go = array(); 
$date_back = array(); 
$residence = array(); 
foreach ($guide_input as $idx => $name) { 
    $guide[] = array(
     'name_guide' => $guide_input[$idx], //Line Number: 121 
    ); 
    $airline[] = array(
     'name_airline' => $airline_input[$idx], //Line Number: 124 
    ); 
    $residence[] = array(
     'name_r' => $name_r_input[$idx], //Line Number: 127 
     'units' => $units_input[$idx], //Line Number: 128 
     'price_change' => $price_change_input[$idx], //Line Number: 128 
    ); 
}; 
$data = array(
    'json1' => json_encode($residence), 
    'json2' => json_encode($airline), 
    'json3' => json_encode($guide), 
); 

$this->db->insert(tableName, $data); 
+1

你有沒有試過你的代碼?它有用嗎?如果不是,那麼你的預期效果不好?你有沒有收到任何錯誤訊息? –

+0

是的,我得到錯誤:'消息:未定義偏移量' –

+0

請編輯您的帖子並添加您收到的**確切**錯誤消息。 **確切的**,因爲它會讓人們更容易找出問題的可能性。 –

回答

1

上述代碼假定所有輸入數組像$ airline_input,$ date_go_input等..將具有相同數量的元素$ guide_input的在他們中。我的猜測是他們不。

的代碼是正確的,沒有錯誤潤玉應該檢查:

count($guide_input) == count($airline_input) 
&& count($guide_input) == count($date_go_input) 
// ... and so on... // 
+0

如何在代碼中運行它自己? –

+0

她更新了確切的錯誤信息,看起來更像是一個或多個數組可能爲空或爲空。不過,我不是一個PHP程序員,所以我可能都錯了。 :) –

+0

當改變這行'foreach($ guide_input爲$ idx => $ name){'to'foreach($ name_r_input as $ idx => $ name){',同樣的錯誤顯示爲'121'行' 124'在我的文章中看到這條線。 –

0

我想你應該檢查guide_inputairline_input,等等。每個數組都有相同的密鑰?

+0

應該如何檢查他們的數組? –

+0

我想你可以簡單地打印出它們:'print_r(guide_input)'(如果你不使用任何調試工具)。 – uzsolt