문법 한번 봐주세요.
본문
$room = sql_query(" select * from {$g5['r_table']} where (1) and `r_use` = 'y' ");
foreach($room as $key => $val) {
$div .= '<option value="'.$val['r_idx'].'">'.$val['r_name'].'</option>';
}
r_table에 r_use인 레코드가 2개 있다고 가정하면...
r_idx 필드와 r_name필드로 셀렉트 박스를 보여주려고 합니다.
while문으로 많이 해봤는데 foreach문으로 하려니 에러가 나네요..ㅎ
고수님의 가르침을 기다립니다. 감사합니다.
답변 5
sql_query() 로 가져온 값으로는 foreach()를 쓸 수 없습니다.
sql_fetch_array 으로 쓰셔야 합니다.
while($row = sql_fetch_array($result)
$div .= '<option value="'.$row['r_idx'].'">'.$row['r_name'].'</option>';
이렇게 쓰셔야 합니다.
$sql = " select * {$sql_common} {$sql_search} {$sql_order} limit {$from_record}, {$rows} ";
$result = sql_query($sql);
foreach($result as $k=>$v){
print_r($v);
php 7.0 대에서 확인해보니깐 잘 되네요.
오 ~ 새로운 거 배웠네요. 감사 합니다. ^^
!-->
foreach($room as $key => $val) {
print_r2($key);
print_r2($val);
}
먼저 확인해 보세요
잠정적인 결론....mysql 버전에 따른 문제가 아닐까 추측해 봅니다.
혹시 mysql 5.0.X에서 5.5.X 업그레드해도 이전 db는 문제가 없는지 모르겠네요.
다음주 월요일 업그레이드 하고 말꺼얌~~ㅠㅠ
for($i=0; $row=sql_fetch_array($room); $i++) {
이렇게 사용하셔야 합니다.
sql_fetch_array 이 구분이 들어가야 배열로 값을 가져옵니다.