2013-06-27 2 views
0

클래스의 인스턴스를 만드는 페이지가 있습니다. 이 클래스는 사용자 (배지)에 대한 정보를 얻지 만 객체를 반환하면 첫 번째 레코드 만 가져옵니다. 아래의 일부 코드.PHP 클래스에서 배열 객체 가져 오기

$badges = new Badges; 

$result = $badges->getBadges($userID); 
$row_array[] = $result; 
echo json_encode($row_array); 


class Badges 
{ 
    function getBadges($userID) 
    { 
     $get_badge_query = mysqli_query($GLOBALS['connect'], "SELECT * FROM tbl_my_badges WHERE user_id = '" . $userID . "'"); 

     while($get_badge_result = mysqli_fetch_assoc($get_badge_query)) { 
      $result = array("done" => "true", 
          "badge_icon" => $get_badge_result['badge_icon'], 
          "badge_text" => $get_badge_result['badge_message']); 

     } 
     return $result; 
    } 
} 

I 루프 밖에서 배열 변수를 추가하고,이 결과를 채우는 가변 복귀 시도했지만 여전히 작동하지 않는다.

도움이 될 것입니다. 그렇지 않으면 당신은 그냥 각 반복에 $result 변수를 덮어하고

$results = array(); 
while($get_badge_result = mysqli_fetch_assoc($get_badge_query)) { 
    $results[] = array("done" => "true", 
        "badge_icon" => $get_badge_result['badge_icon'], 
        "badge_text" => $get_badge_result['badge_message']); 
} 
return $results; 

을하고, 항상 마지막 레코드로 설정됩니다

+0

'$ result = array ("done"= ""true ", ..."코드 행은 무엇입니까? – zerkms

+0

작동하지 않는다는 것을 의미하는 이유를 설명하십시오. DB에서보다 더. – puks1978

+0

네, 내 의견이 바뀌 었습니다. 당신의 코드에서 기대하는 바입니다 :-) 모든 결과를 저장하지 않고 마지막 하나만을 저장합니다. – zerkms

답변

2

당신은 배열로 결과를 축적 할 필요가, 그 다음을 반환 DB.

+0

그래 ...이 바로 여기에 대답 :) – KyleK

+0

고마워. 이유는 모르겠지만 $ 결과를 반환하고 다른 배열 $ row_array에 할당하려고 시도했지만 여전히 작동하지 않았습니다. 그래서 기본적으로 $ row_array [] = $ 결과가 있고 작동하는 것 같습니다. – puks1978

관련 문제