묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
스킨에서 foreach as 오류...
2011.03.09 18:14
$output = executeQuery('communication.getChat',$args);
// 템플릿에 쓰기 위해서 context::set
Context::set('total_count', count($output->data));
Context::set('chat_list', $output->data);
제가 사용한 코드를 간단하게 줄여보자면 위와 같습니다.
보시면 DB에서 sql질의를 한 후 받은 결과값을 템플릿으로 전송하고
스킨 파일에서는 foreach as를 이용하여 아래와 같이 출력하고 있습니다.
<!--@foreach($chat_list as $val)-->
<tr>
<td class="nowrap wide">{$val->content} / {$val->message_type} / {$other_nick_name}</td>
<td class="nowrap"><span class="regdate">{zdate($val->regdate,"Y-m-d H:m:s")}</span></td>
</tr>
<!--@end-->
문제는 DB에서 얻은 결과값의 개수가 0개이거나 2개이상이면 정상적으로 출력이 됩니다.
하지만 1개일 경우에는 foreach로 데이터를 받아오지 못하면서 지 멋대로 루프가 10번가량 돌아버립니다.
즉, $val->content 로는 데이터를 받아오지 못하고 $chat_list->content를 해야만 데이터를 받아올 수 있더군요.
그래서 비어있는 데이터로 <tr>~~</tr>가 10번 가량 화면에 출력이 됩니다.
무엇이 문제인가요?
foreach가 원래 그런가요?
현재는 if문을 이용하여 결과값을 개수가 1개일때는 $chat_list->content 와 같은 식으로 출력하도록 사용하고는 있습니다만,
foreach만으로 해결이 되지 않는다는게 걸리적거리네요.
혹시 원인을 아시는 분 계시면 조언 부탁드려요.
// 템플릿에 쓰기 위해서 context::set
Context::set('total_count', count($output->data));
Context::set('chat_list', $output->data);
제가 사용한 코드를 간단하게 줄여보자면 위와 같습니다.
보시면 DB에서 sql질의를 한 후 받은 결과값을 템플릿으로 전송하고
스킨 파일에서는 foreach as를 이용하여 아래와 같이 출력하고 있습니다.
<!--@foreach($chat_list as $val)-->
<tr>
<td class="nowrap wide">{$val->content} / {$val->message_type} / {$other_nick_name}</td>
<td class="nowrap"><span class="regdate">{zdate($val->regdate,"Y-m-d H:m:s")}</span></td>
</tr>
<!--@end-->
문제는 DB에서 얻은 결과값의 개수가 0개이거나 2개이상이면 정상적으로 출력이 됩니다.
하지만 1개일 경우에는 foreach로 데이터를 받아오지 못하면서 지 멋대로 루프가 10번가량 돌아버립니다.
즉, $val->content 로는 데이터를 받아오지 못하고 $chat_list->content를 해야만 데이터를 받아올 수 있더군요.
그래서 비어있는 데이터로 <tr>~~</tr>가 10번 가량 화면에 출력이 됩니다.
무엇이 문제인가요?
foreach가 원래 그런가요?
현재는 if문을 이용하여 결과값을 개수가 1개일때는 $chat_list->content 와 같은 식으로 출력하도록 사용하고는 있습니다만,
foreach만으로 해결이 되지 않는다는게 걸리적거리네요.
혹시 원인을 아시는 분 계시면 조언 부탁드려요.
글쓴이 | 제목 | 최종 글 |
---|---|---|
XE | 공지 글 쓰기,삭제 운영방식 변경 공지 [16] | 2019.03.05 by 남기남 |
zerozerozero | 에디터콤포넌트 추가가 안됩니다 | |
Jesu | 설치방법 [1] | 2009.03.21 by 坡平尹門 |
Jesu | 설치방법 [1] | 2009.03.21 by 坡平尹門 |
坡平尹門 | xe 팝업스킨은 없나요? [1] | 2009.03.21 by 만쓰별(정만) |
뮤랑이 | XE 1.2.0 은 r몇인가요? [2] | 2009.03.21 by 뮤랑이 |
안나프르나 | 깡초보가 질문있읍니다 ㅠ [5] | 2009.03.21 by 안나프르나 |
zerozerozero | 2차 메뉴 롤오버 컬러 어디서 바꿔주나요? [1] | 2009.03.21 by 왜만지냐 |
어라얼랑 | 확장 변수 사용이 불가 합니다. 도와주세요 | |
dfly20 | 서버이전 후 제로보드 게시판이... | |
헤헤 | 회원가입폼에 라디오버튼 추가가 안되네요. | |
chapo | 게시판 분류에 관해서 | |
chapo | 확장변수 이상해서요. | |
이재한744 | HTTP 406 승인에러가 방화벽때문이라고 하는데 해결책 부탁드립니다. [1] | 2009.03.21 |
하늘정워니 | 1.2로 up하고 문제- 급 도움요청 [1] | 2009.03.21 by 닝기리쓰레빠 |
궁금 | 도와주세요 제로보드xe [1] | 2009.03.21 by 닝기리쓰레빠 |
비밀얌 | XE 1.2 속도 어떤가요? [2] | 2009.03.21 by 닝기리쓰레빠 |
함동균 | 회원가입폼은 레이아웃과 연동안되나요? [2] | 2009.03.21 by 함동균 |
이형구704 | 서버 꺼졌을때 특정 페이지 노출이 가능한가요? [2] | 2009.03.21 by 함동균 |
유소다 | 인터넷 익스플로러에서 제로보드xe가 안 됩니다;;; [2] | 2009.03.21 by 유소다 |
포털솔루션 | 레벨아이콘 분양사이트마다 다르게...... [1] | 2009.03.21 by SMaker |
원인을 알았습니다.
query에서 navigation 구문과 연계가 되네요.
위에서 처럼 foreach 오류가 났을 때는 navigation을 아래와 같이 작성하였습니다.
<navigation>
<index var="sort_index" default="regdate" order="desc" />
<list_count var="list_count" default="10" />
</navigation>
그런데 아래와 같이 수정하였더니 foreach가 잘 작동하네요.
<navigation>
<index var="sort_index" default="regdate" order="desc" />
<list_count var="list_count" default="10" />
<page_count var="page_count" default="10" />
<page var="page" default="1" />
</navigation>
페이지가 필요없다고 생각해서 빼버렸더니..xe에서 처리하는 구문과 연계가 안되었었나보네요.