2014-03-25 146 views
-3

ItemDb類未定義指數

public function getRandomItem() { 

     $query = "SELECT * FROM `items` ORDER BY RAND() LIMIT 2"; 
     return $this->query($query); 

    } 

的index.php

$item = new Item(); 

    $result = $item->getRandomItem(); 

    while ($row = $result->fetch_assoc()) { 
     foreach ($row as $key => $value) { 
      //I want to put them in a array but the two items need to be separated 
     } 
    } 

我得到兩個不同的項目出來我怎麼可以拆分他們的數據庫,並把它們放在一個陣列分離,如:

$陣列[$關鍵] [$值]

對不起,我的英語了我的第二語言,我希望你們能理解我。

+1

在使用它之前,您沒有定義'itemArray'。在嘗試追加到它之前,'$ itemArray [$ key]'不存在。 – Jim

+0

您正在嘗試寫入'$ itemArray',但您尚未聲明它。然後你試圖添加到它的鍵,但這些值尚未設置。 PHP會讓你做到這一點,但正如你所看到的,它會向你大吼一聲。 –

回答

2

在使用它之前,您需要聲明$itemArray[$key]。因此,您的代碼需要看起來像

$itemArray = array(); 
while ($row = $result->fetch_assoc()) { 
    foreach ($row as $key => $value) { 
     if(!isset($itemArray[$key])) { 
      $itemArray[$key] = array(); //Declare it 
     } 
     $itemArray[$key][] = $value; 
    } 
} 
+0

這不起作用。它會每次將'$ itemArray [$ key]'重新賦給一個空數組。另外,爲什麼'。= $ value'? –

+0

他只從數據庫中添加一個項目我希望兩個項目在一個數組中可能嗎? – Proliner

+0

@RocketHazmat好點,我編輯我的代碼示例 – Pattle