게시글 데이터를 다른 페이지에서 불러올 때 foreach 와 for 차이
본문
<?php
$sql = " select * from {$write_table} where wr_is_comment = 0 order by wr_id desc ";
$result = sql_query($sql);
foreach ( sql_fetch_array($result) as $row )
{
echo $row['wr_subject'];
?>
<?php
}
for($i=0;$row=sql_fetch_array($result);$i++)
{
echo $row['wr_subject'];
?>
<?php
}
?>
위처럼 foreach 로 게시글 데이터를 출력하면 한글이 깨지고,
for 로 돌리면 제대로 출력되는데
차이가 왜 생기는지가 궁금합니다...;;
어쩔땐 foreach 로 돌려도 제대로 출력되던데... 또 어쩔땐 외계어로 한글이 깨지더라구요...;;
!-->답변 2
for문은 매 반복마다 sql_fetch_array()를 실행하여 다음 행을 순차적으로 가져옵니다.
sql_fetch_array()는 DB에서 데이터를 원래 인코딩 그대로 가져옵니다.
다만 foreach 의 경우는 결과를 한번만 실행하고 그 결과 배열의 각 요소를 순환합니다.
따라서, 와일문 사용을 하시면 해결할 수 있습니다.
while($row = sql_fetch_array($result)) {
echo $row['wr_subject'];
}
<?php
$write_table = 'g5_write_free';
$sql = " select * from {$write_table} where wr_is_comment = 0 order by wr_id desc ";
$result = sql_query($sql);
foreach ( sql_fetch_array($result) as $k => $v)
{
echo $k.' - '.$v.'<br>';
}
?>
foreach 반복문: 1개 배열(= 맨 처음 라인의 레코드)에 대해서 키와 값을 출력하는 구조
!-->
답변을 작성하시기 전에 로그인 해주세요.