클래스의 인스턴스를 만드는 페이지가 있습니다. 이 클래스는 사용자 (배지)에 대한 정보를 얻지 만 객체를 반환하면 첫 번째 레코드 만 가져옵니다. 아래의 일부 코드.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;
을하고, 항상 마지막 레코드로 설정됩니다
'$ result = array ("done"= ""true ", ..."코드 행은 무엇입니까? – zerkms
작동하지 않는다는 것을 의미하는 이유를 설명하십시오. DB에서보다 더. – puks1978
네, 내 의견이 바뀌 었습니다. 당신의 코드에서 기대하는 바입니다 :-) 모든 결과를 저장하지 않고 마지막 하나만을 저장합니다. – zerkms