sql_fetch_array

sql_fetch_array

QA

sql_fetch_array

답변 3

본문

3731409700_1600328290.3659.png

위 코드를 실행시켯을때 notification 테이블에서 입력한 mb_id 가 모두 나와야 되는데

print_r2 함수로 확인해보니 테이블에서 제일 첫번째 값 하나만 출력됩니다.

그래서 sql_query($sql); 의 반환값을 출력해보니 

3731409700_1600328409.3606.png

이렇게 출력되는데 num_rows 를 보면 제가 불러오려고했던 row 들이 모두있습니다.

sql_fetch 도 아닌데 왜 첫번째 row 하나만 출력되는걸까요...?

이 질문에 댓글 쓰기 :

답변 3

$row = sql_fetch_array($result);  <---첫번째 레코드 가져옵니다

한번더 하면

$row = sql_fetch_array($result);  <--두번째 레코드를 가져옵니다

 

$row[]배열에는 레코드의 컬럼(필드명)이 인자로 들어갑니다

 $row['no'] , $row['name'] 같은 형식이죠

여러 레코드 값들이 배열로 들어가는 것이 아닙니다

 

반복문으로 돌려야합니다. 그렇게 하면 하나만 가져옵니다.

그누보드 소스에 sql_fetch_array 로 검색해보면 참고할 내용이 많습니다.

 

예를 들어 파일 정보 가져오는 소스는 아래와 같은데

 while ($row = sql_fetch_array($result)) {

            $no                    = $row['bf_no'];

            $file[$no]['href']     = G5_BBS_URL . "/download.php?bo_table=$bo_table&wr_id=$wr_id&no=$no" . $qstr;

            $file[$no]['download'] = $row['bf_download'];

  

..나머지 생략

 

        }

이런식인데 

return $file; 

로 함수 끝에 넣어주면 됩니다.

$sql = "select * from notification where mb_id = '$mb_id' ";
$row = sql_fetch($sql);
echo $row['mb_id'];

 

다만, 이렇게 쓰는 경우는 결과값이 1줄만 있을 때 유용합니다.

결과값이 여러줄인 경우에는.. 가장 첫번째 줄의 정보만 가져옵니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 2,660
© SIRSOFT
현재 페이지 제일 처음으로