물어보기XpressEngine
Extra Form

고수님들께 질문 드려요... ㅠㅠ

 

코노리님 경험치 모듈을 사용하고 있는데...

팁게시판에서 경험치 순위 뽑는 구문을 발견해서 적용해보니...

나의 순위가 잘 나오는듯 하였으나...

 

회원탈퇴시 회원번호와 경험치 레코드는 db에 그대로 남아 있어서

순위가 탈퇴한 회원꺼까지 다 매겨서 나오네요..

 

실제 남아회원은 7명인데...

A회원 1위

B회원 2위

C회원 3위

D회원 4위

.

회원가입테스트로 19명 신규가입-회원탈퇴 반복

.

E회원 24위

F회원 25위

G회원 26위

 

이런식으로 4위 후로는 탈퇴한 회원들 건너뛰고 남아있는 회원이 24위로 표시되네요..

※ 5위부터 23위까지는 탈퇴한 회원들 순위같습니다.

 

db에서 탈퇴한 회원들 레코드 다 삭제하면 순위는 바로 잡히겠으나...

사이트를 운영하면 지속적으로 가입, 탈퇴하는 회원이 생겨서 매번 찾아내서 db에서 삭제하기도 힘들거 같네요..

 

DB에는 아래 레코드가 남아있네요..

"member_srl" 2000번대는 회원가입 테스트 한 유령회원들입니다. (수동 가입후 바로 탈퇴시킴)

 

"member_srl"   "experience"
"399"   "0"
"6173"   "120"
"6153"   "980"
"2143"   "3000"
"2144"   "3000"
"2145"   "3000"
"2146"   "3000"
"2147"   "3000"
"2148"   "3000"
"2149"   "3000"
"2150"   "3000"
"2151"   "3000"
"2171"   "3000"
"2172"   "3000"
"2173"   "3000"
"2174"   "3000"
"2175"   "3000"
"2176"   "3000"
"2177"   "3000"
"2178"   "3000"
"2179"   "3000"
"2180"   "3000"
"496"   "4910"
"178"   "8200"
"4"   "20050"
"485"   "20340"

 

그리고 나만의 경험치 순위 보여주는 위젯 구문은 아래와 같습니다.

 

 

 

<!-- 회원 경험치 랭킹 순위 구하기  -->
{@
 $oExperienceModel = &getModel('experience');
 $experience = $oExperienceModel->getExperience($logged_info->member_srl);
 $oDB = &DB::getInstance();
 $query = $oDB->_query('select count(*) as total from xe_experience where experience > '.$experience);
 $result = $oDB->_fetch($query);
 $myrank = $result->total + 1;
}

 

 

<!--@if($logged_info->member_srl)-->
        회원님의 현재 랭킹은 <span style="color:#388aff;">{$myrank}</span>위 입니다.</caption>
        <!--@else-->
        <caption>로그인하시면 회원님의 경험치 순위가 표시됩니다.</caption>
        <!--@end-->

 

 

 

 

 

 

탈퇴한 회원 경험치 레코드를 삭제할려면... 어디를 수정해야 할까요?

회원탈퇴하면 포인트는 같이 삭제되는거 같은데... 탈퇴한 회원의경험치는 db에 남아있습니다.

 


서버에 요청 중입니다. 잠시만 기다려 주십시오...