고수님들께 질문 드려요... ㅠㅠ
코노리님 경험치 모듈을 사용하고 있는데...
팁게시판에서 경험치 순위 뽑는 구문을 발견해서 적용해보니...
나의 순위가 잘 나오는듯 하였으나...
회원탈퇴시 회원번호와 경험치 레코드는 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에 남아있습니다.