이렇게 변형하면 왜 안되는 것이죠???
수정전 원본
$sql = " select * from $g4[board_new_table] where bo_table like '{$nc[cb_disc]}%' and wr_id = wr_parent order by bn_id desc limit 0, $rows ";
$result = sql_query($sql);
$result = sql_query($sql);
for ($i=0; $row = sql_fetch_array($result); $i++) {
$sql = " select * from $g4[board_table] where bo_table = '$row[bo_table]' ";
$board = sql_fetch($sql);
$tmp_write_table = $g4[write_prefix] . $row[bo_table]; // 게시판 테이블 전체이름
$sql = " select * from $tmp_write_table where wr_id = '$row[wr_id]' ";
$row2 = sql_fetch($sql);
$list[$i] = get_list($row2, $board, $latest_skin_path, $subject_len);
}
$sql = " select * from $g4[board_table] where bo_table = '$row[bo_table]' ";
$board = sql_fetch($sql);
$tmp_write_table = $g4[write_prefix] . $row[bo_table]; // 게시판 테이블 전체이름
$sql = " select * from $tmp_write_table where wr_id = '$row[wr_id]' ";
$row2 = sql_fetch($sql);
$list[$i] = get_list($row2, $board, $latest_skin_path, $subject_len);
}
희망하는 수정버젼
$sql = " select * from $g4[board_new_table] where bo_table like '{$nc[cb_disc]}%' and wr_id = wr_parent order by bn_id desc limit 0, $rows ";
$result = sql_query($sql);
$result = sql_query($sql);
for ($i=0; $i < $rows; $i++) {
$row = sql_fetch_array($result)
$sql = " select * from $g4[board_table] where bo_table = '$row[bo_table]' ";
$board = sql_fetch($sql);
$tmp_write_table = $g4[write_prefix] . $row[bo_table]; // 게시판 테이블 전체이름
$sql = " select * from $tmp_write_table where wr_id = '$row[wr_id]' ";
$row2 = sql_fetch($sql);
$list[$i] = get_list($row2, $board, $latest_skin_path, $subject_len);
}
$sql = " select * from $g4[board_table] where bo_table = '$row[bo_table]' ";
$board = sql_fetch($sql);
$tmp_write_table = $g4[write_prefix] . $row[bo_table]; // 게시판 테이블 전체이름
$sql = " select * from $tmp_write_table where wr_id = '$row[wr_id]' ";
$row2 = sql_fetch($sql);
$list[$i] = get_list($row2, $board, $latest_skin_path, $subject_len);
}
논리적으로는 for loop는 그냥 돌구... 정해진대로 $result에서 한줄씩 가져오면 되는건데...
왜 안되는 것이죠? 이렇게 해 놓으니까 db에서 값을 가져오지 못하네요. ㅠ..ㅠ
|
댓글을 작성하시려면 로그인이 필요합니다.
로그인
댓글 11개
전체적인 소스를 보지 못해서 정확한지 모르겠지만 올리신 소스를 기준으로 보면 아래부분에 ;가 빠진듯 합니다.
$row = sql_fetch_array($result)을 ==> $row = sql_fetch_array($result); 이렇게.. 맞으면 좋겠네요.
db 부분만 들어가면 실행이 이상해 지는 이유가 뭔지... 이긍~ ㅠ..ㅠ
$i 는 1씩 증가하는데 $rows 는 뭘까요~~
비교대상이 되지 않기 때문에 오류가 발생합니다.
db 관련된 부분이 실행되지 않으면 프로그램의 $i는 정상인데,
db 관련된 부분만 실행되면 이상해져요. $row에 값을 못 가져오는거에요. fetch를 못하는거죠. ㅠ..ㅠ
$row = sql_fetch_array($result)
$sql = " select * from $g4[board_table] where bo_table = '$row[bo_table]' ";
$board = sql_fetch($sql);
$tmp_write_table = $g4[write_prefix] . $row[bo_table]; // 게시판 테이블 전체이름
$sql = " select * from $tmp_write_table where wr_id = '$row[wr_id]' ";
$row2 = sql_fetch($sql);
$list[$i] = get_list($row2, $board, $latest_skin_path, $subject_len);
$sql = " select * from $g4[board_new_table] where bo_table like '{$nc[cb_disc]}%' and wr_id = wr_parent order by bn_id desc limit 0, $rows ";
$result = sql_query($sql);
$i = 0;
while($row = sql_fetch_array($result))
{
if($i >= $rows)
{
break;
}
$sql1 = " select * from $g4[board_table] where bo_table = '$row[bo_table]' ";
$board = sql_fetch($sql1);
$tmp_write_table = $g4[write_prefix] . $row[bo_table]; // 게시판 테이블 전체이름
$sql = " select * from $tmp_write_table where wr_id = '$row[wr_id]' ";
$row2 = sql_fetch($sql);
$list[$i] = get_list($row2, $board, $latest_skin_path, $subject_len);
$i++;
}
혹 위의 방법으로 안된다면 $nc[cb_disc] 정의 부분을 살펴 보시기 바랍니다.
클럽을 사용하지 않기에 별도의 lib 화일을 만들어 like에 의한 최신글 추출을 한결과 잘 동작합니다.....^^
아~ 진정 break 하는 방법밖에 없나요 ㅠ..ㅠ
해도 해도 안되면 while loop로 하려고 했는데 이렇게 하니까 잘 되네요.
그런데 제가 궁금한거는 왜 for loop에서는 안돼냐는거죠 ㅠ..ㅠ 왜??? 왜????
$sql = " select * from $g4[board_new_table] where bo_table like '{$nc[cb_disc]}%' and wr_id = wr_parent order by bn_id desc limit 0, $rows ";
$result = sql_query($sql);
for ($i=0; $i < $rows; $i++) {
$row = sql_fetch_array($result);
$sql1 = " select * from $g4[board_table] where bo_table = '$row[bo_table]' ";
$board = sql_fetch($sql1);
$tmp_write_table = $g4[write_prefix] . $row[bo_table]; // 게시판 테이블 전체이름
$sql = " select * from $tmp_write_table where wr_id = '$row[wr_id]' ";
$row2[$i] = sql_fetch($sql);
$list[$i] = get_list($row2[$i], $board, $latest_skin_path, $subject_len);
}
그래서 질문드렸던거에요. 제가 뭘 잘못했나 하구요.
for 문과 while문의 차이는 아시리라 생각되기에 생략합니다...^^
저도 그래야 한다고 믿었고 for loop도 sql 관련 사항이 실행되지 않으면 잘 돌아가요.
fortran 프로그래머들은 중간과정을 다 echo 시켜버리죠. ㅋㅋ
그런데 이경우에만 for loop안에서 가장 첫줄의 sql_fetch_array가 안되는거에요. 아~ ... 아~...