채택완료

for문 변수에 값이 안들어 갑니다...

그누보드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."<br>";
    }

 

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

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

|

답변 3개 / 댓글 4개

채택된 답변
+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."<br>";
}

답변에 대한 댓글 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
<?php
    $j_sql = "select * from board limit 1, 5";
    $result = sql_query($j_sql);
    $j_row = sql_fetch_array($result);
    if ($j_row) {    // 조회결과가 있을 때 보여주기
        $list_cnt = 5; // 예시로 5로 설정

        for ($j = 0; $j < $list_cnt; $j++) {
            $wr_id = $j_row[$j]['wr_id'];
            $wr_subject = $j_row[$j]['wr_subject'];
    
            echo $wr_subject."<br>";
        }
    }
?>

답변에 대한 댓글 1개

답변 감사드립니다^^

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