2014-03-25 3 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