이렇게 변형하면 왜 안되는 것이죠??? 정보
이렇게 변형하면 왜 안되는 것이죠???본문
수정전 원본
$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에서 값을 가져오지 못하네요. ㅠ..ㅠ
댓글 전체
혹시 에러나지 않는지요?
전체적인 소스를 보지 못해서 정확한지 모르겠지만 올리신 소스를 기준으로 보면 아래부분에 ;가 빠진듯 합니다.
$row = sql_fetch_array($result)을 ==> $row = sql_fetch_array($result); 이렇게.. 맞으면 좋겠네요.
전체적인 소스를 보지 못해서 정확한지 모르겠지만 올리신 소스를 기준으로 보면 아래부분에 ;가 빠진듯 합니다.
$row = sql_fetch_array($result)을 ==> $row = sql_fetch_array($result); 이렇게.. 맞으면 좋겠네요.
아~ 이것은 제가 질문용으로 옮기면서 ; 을 빼먹었구요... 실제는 ; 가 있는게 맞아요. ㅠ..ㅠ
db 부분만 들어가면 실행이 이상해 지는 이유가 뭔지... 이긍~ ㅠ..ㅠ
db 부분만 들어가면 실행이 이상해 지는 이유가 뭔지... 이긍~ ㅠ..ㅠ

for ($i=0; $i < $rows; $i++) {
$i 는 1씩 증가하는데 $rows 는 뭘까요~~
비교대상이 되지 않기 때문에 오류가 발생합니다.
$i 는 1씩 증가하는데 $rows 는 뭘까요~~
비교대상이 되지 않기 때문에 오류가 발생합니다.
$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);
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);

$row 랑 $rows 를 잘못봤네요 @_@

아래와 같이 써 보세요..
$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에 의한 최신글 추출을 한결과 잘 동작합니다.....^^
$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에 의한 최신글 추출을 한결과 잘 동작합니다.....^^
개별 sql을 출력해서 phpMyAdmin에서 실행을 해보니까 잘 되더라구요.
아~ 진정 break 하는 방법밖에 없나요 ㅠ..ㅠ
해도 해도 안되면 while loop로 하려고 했는데 이렇게 하니까 잘 되네요.
그런데 제가 궁금한거는 왜 for loop에서는 안돼냐는거죠 ㅠ..ㅠ 왜??? 왜????
아~ 진정 break 하는 방법밖에 없나요 ㅠ..ㅠ
해도 해도 안되면 while loop로 하려고 했는데 이렇게 하니까 잘 되네요.
그런데 제가 궁금한거는 왜 for loop에서는 안돼냐는거죠 ㅠ..ㅠ 왜??? 왜????

break가 싫으시면(?) 이렇게 해 보세요...
$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);
}
$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 문과 while문의 차이는 아시리라 생각되기에 생략합니다...^^
감사합니다.
저도 그래야 한다고 믿었고 for loop도 sql 관련 사항이 실행되지 않으면 잘 돌아가요.
fortran 프로그래머들은 중간과정을 다 echo 시켜버리죠. ㅋㅋ
그런데 이경우에만 for loop안에서 가장 첫줄의 sql_fetch_array가 안되는거에요. 아~ ... 아~...
저도 그래야 한다고 믿었고 for loop도 sql 관련 사항이 실행되지 않으면 잘 돌아가요.
fortran 프로그래머들은 중간과정을 다 echo 시켜버리죠. ㅋㅋ
그런데 이경우에만 for loop안에서 가장 첫줄의 sql_fetch_array가 안되는거에요. 아~ ... 아~...