본문 바로가기
MySql

MySQL while 루프 후 PHP 에코 배열 값

by 베이스 공부 2020. 9. 21.
반응형

while 루프 후에 값을 어떻게 에코 할 수 있습니까? 아래 코드에서 에코를 수행하면 정의되지 않은 색인이 표시됩니다.

$sql_cast = "SELECT *
            FROM
              title_cast
              INNER JOIN title ON (title_cast.id_title = title.id)
              INNER JOIN `cast` ON (title_cast.id_cast = `cast`.id)
            WHERE
              title_cast.id_title = '1'";
$result_cast = mysql_query($sql_cast) or die('log error with' .mysql_error());
$cast = array();
while ($row = mysql_fetch_assoc($result_cast)) {
                $id = $row['id'];
                $name = $row['name'];
                $img = $row['photo_localurl'];
                $poster = str_replace("./", "lib/", $img);

                $cast[] = array('id' => $id, 'name' => $name, 'img' => $poster);
                //$cast[] = $row;
                }
                //var_dump($cast);
                echo $cast['id'] . " " . $cast['name'] . " " . $cast['poster']."<br />";

 

해결 방법

 

while 루프 내에서 $ cast [] 구문을 사용하여 캐스트 배열 콘텐츠를 설정합니다. 이렇게하면 0부터 1까지 숫자 인덱스가 생성되므로 다음과 같은 배열을 생성합니다.

$cast = array(
    0 => array('id' => $id, 'name' => $name, 'img' => $poster),
    1 => array('id' => $id, 'name' => $name, 'img' => $poster)
);

에코하려는 배열의 숫자 키를 포함해야합니다. 예를 들어 첫 번째 행을 에코하려는 경우 :

echo $cast[0]['id']; // Echo the id of the first result

모든 행을 에코하려면 foreach 를 사용하세요.

foreach($cast as $row) {
    echo $row['id'];
}

 

참조 페이지 https://stackoverflow.com/questions/9125969

 

 

반응형

댓글