레이아웃에서 현재 포인트러쉬 모듈의 최근 이벤트 10개 중 rush_status 가 OPEN 인 값을 가진 것의 숫자를 세어 보려고 합니다.
db에는
xe_pointrush 테이블에 rush_status 에 OPEN 또는 CLOSE 값을 가지게 되어 있습니다.
OPEN 값을 가진 게시물이 카운트가 되었다면 현재 응모마감이 되지 않은 포인트응모 행사가 있다는 것이어서 이 값을 가지고 레이아웃에 표시를 해 주려고 합니다.
최근 포인트 이벤트는 document_srl 값이 증가하게 되어있습니다.
xe_pointrush table : document_srl module_srl use_group rush_point ...... rush_status
댓글 10
쿼리를 아래처럼 작성해 보세요.
xe_pointrush 테이블에서 document_srl 값이 높은 10개중 rush_status가 'OPEN'인것을 카운트 합니다.
select count(*) from (select * from xe_pointrush order by document_srl desc limit 10) as top10 where rush_status='OPEN'
{@
$oDB = &DB::getInstance();
$query = $oDB->_query
$result = $oDB->_fetch($query);
$opencount = $result->count;
}
여기에 적용을 하려면 어찌 바꿔야 하는건가요?
이렇게 한번 해 보세요. 그리고 $result에 카운트 값만 리턴되니까 $opencount = $result->count;이 과정 필요없이 $result값을 그냥 이용하시면 될꺼 같습니다.
Resource id #182 이렇게 출력이 되구요.
아래처럼 테스트 해보니 정상 작동 합니다.
{@
$oDB = &DB::getInstance();
$query = $oDB->_query("select count(*) as count from (select * from xe_pointrush order by document_srl desc limit 10) as top10 where rush_status='OPEN'");
$result = $oDB->_fetch($query);
}
<!--@if($result->count > 0)-->
<p>진행중인 이벤트 있음</p>
<!--@else-->
<p>진행중인 이벤트 없음</p>
<!--@end-->
감사합니다. 알려주신대로 잘 쓰겠습니다.
이를 위해 쿼리가 약간 수정 되었습니다.