2026, 새로운 도약을 시작합니다.

for문 변수에 값이 안들어 갑니다... 채택완료

2년 전 조회 1,522

그누보드5 입니다.

Copy


    $j_sql = "select * from board limit 1, 5";

    $result = sql_query($j_sql);

    $j_row = sql_fetch_array($result);

    if($j_row) {    // 조회결과가 있을때 보여주기

    for ($j=0; $j  $list_cnt; $j++) {

        $wr_id = $j_row[$j]['wr_id'];

        $wr_subject = $j_row[$j]['wr_subject'];

    

        echo $wr_subject."
";

    }

for 문 돌리면 5개 행이 나와야 하는데 왜 안나올까요?

$wr_subject 값이 안찍히네요....ㅠㅠ

답변 3개

채택된 답변
+20 포인트
Copy


$j_sql = "select * from board limit 1, 5";

$result = sql_query($j_sql);

for ($j=0; $j_row=sql_fetch_array($result); $j++) {

        $wr_id = $j_row['wr_id'];

        $wr_subject = $j_row['wr_subject'];

    

        echo $wr_subject."
";

}

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

답변 감사드립니다~ ^^


1. $wr_id = $j_row['wr_id'];

2. $wr_id = $j_row[$j]['wr_id'];

변수를 잘못쓴거네요..
그런데 1번, 2번 차이가 뭔지요?
$result = sql_query($j_sql);
$j_row = sql_fetch_array($result);

여기에서 그누보드의 sql_fetch_array 함수는 mysqli_fetch_assoc() 함수로
결과값 $result에서 한행을 얻는 겁니다.

때문에 위와 같이 하게 되면, $result 에 5개의 결과 값이 담겨 있다고 하더라도,
$j_row에는 한행(첫번째 행)의 결과만 담기게 됩니다.

만약 sql_query 로 가져온 $result의 전체 갯수를 알고 싶다면
$count = $result->num_rows 하면 됩니다.
아 네...

sql_fetch_array
이 함수의 사용이 잘 못 된것인가요?

그리고 $wr_subject = $j_row[$j]['wr_subject']; 이렇게 2중 배열로 사용하는건 틀린 표현이네요?
다른 페이지에서는 이렇게 사용을 했었거든요..

질문이 많아 죄송합니다.ㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

댓글을 작성하려면 로그인이 필요합니다.

Copy
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

답변 감사드립니다^^

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고