sql_fetch_array
본문
위 코드를 실행시켯을때 notification 테이블에서 입력한 mb_id 가 모두 나와야 되는데
print_r2 함수로 확인해보니 테이블에서 제일 첫번째 값 하나만 출력됩니다.
그래서 sql_query($sql); 의 반환값을 출력해보니
이렇게 출력되는데 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줄만 있을 때 유용합니다.
결과값이 여러줄인 경우에는.. 가장 첫번째 줄의 정보만 가져옵니다.