문법 한번 봐주세요. 채택완료
$room = sql_query(" select * from {$g5['r_table']} where (1) and `r_use` = 'y' "); foreach($room as $key => $val) {
$div .= ''; }
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 .= '';
이렇게 쓰셔야 합니다.
답변에 대한 댓글 4개
sql_query()는 php 기본 함수가 아니라 사용자 함수입니다.
아마도 개발하신 분이 가능하게 작업을 해두었을수도 있겠네요.
sql_query() 선언한 곳을 찾아서 확인해보시기 바랍니다.
이놈의 php 버전도 높아지고, mysql 버전도 높아지고....
나의 머리 수준은 낮아지고....걱정입니다. 자동 퇴출되려나 봅니다.ㅠㅠ
역시 기본에 충실해야 된다는 사실을 다시 깨닫습니다.
댓글을 작성하려면 로그인이 필요합니다.
</p>
<p>$sql = " select * {$sql_common} {$sql_search} {$sql_order} limit {$from_record}, {$rows} ";
$result = sql_query($sql);</p>
<p>
foreach($result as $k=>$v){
print_r($v);</p>
<p>
php 7.0 대에서 확인해보니깐 잘 되네요.
오 ~ 새로운 거 배웠네요. 감사 합니다. ^^
답변에 대한 댓글 2개
저는 그 5.0.X 버전이라 안되었구요...ㅠㅠ
그래서
foreach 문을 주석처리하고 아래와 같이 처리했습니다.
//foreach($result as $key => $val) {
while ($val = sql_fetch_array($result)) {
$data[] = $val;
$div[] = unserialize($val['div_info']);
}
신기하게 쿼리는 mysql에서 수행하고 배열에 넣어주는데
php버전과 무슨 상관이 있을까요?
그리고 또 한가지가 있더군요.
필드에 값을 추가할때 가변필드(무한대)처리가 쉬워졌다는것...
2차원 배열에 들어있는 날짜값을 아래처럼 루프를 돌리면 에러가 안납니다.
date('Y-n-j', strtotime($data[$i]))
날짜가 없다고 경고가 떠서 첨자를 아래와 같이 설정하니 값이 나오더군요.
date('Y-n-j', strtotime($data[0][$i]))
암튼 상위버전으로 갈수록 이상해져 가는것 같습니다..ㅎㅎ
이렇게 또 한가지씩 배워가는군요. 고맙습니다.
잘 모르겠더라고요. ^^
뭐 버전 업하면서 개선되었겠지요 ^^
5.2에서 해봣는데, 5.2이에서도 안되더라고요.
댓글을 작성하려면 로그인이 필요합니다.
for($i=0; $row=sql_fetch_array($room); $i++) {
이렇게 사용하셔야 합니다.
sql_fetch_array 이 구분이 들어가야 배열로 값을 가져옵니다.
답변에 대한 댓글 1개
혹시나 mysql 상위버전에서 저렇게해도 가능한지 월요일에 업그레이드해서 돌려봐야겠네요.
조건 감사합니다.
댓글을 작성하려면 로그인이 필요합니다.
잠정적인 결론....mysql 버전에 따른 문제가 아닐까 추측해 봅니다.
혹시 mysql 5.0.X에서 5.5.X 업그레드해도 이전 db는 문제가 없는지 모르겠네요.
다음주 월요일 업그레이드 하고 말꺼얌~~ㅠㅠ
댓글을 작성하려면 로그인이 필요합니다.
foreach($room as $key => $val) {
print_r2($key);
print_r2($val); }
먼저 확인해 보세요
답변에 대한 댓글 1개
Warning: Invalid argument supplied for foreach()
foreach문에서 에러가 발생하네요.
분명히 된다는데 저의 서버에서는 안되네요.
설마 php 버전에 따라 foreach문이 다른것은 아니겠죠?
아~ 힘드네요. 환경이 달라지니...
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
금번에 제작의뢰를 했더니 위와 같이 플밍이 되어 있네요.
mysql 상위 버전에서는 가능할 수도 있다고 생각합니다.
좀더 검색해 보고 이유를 찾아봐야겠습니다.
댓글 고맙습니다.