그누보드로 이전후 포인트 레벨 동기화
본문
XE를 그누보드로 이전했습니다. 게시글은 이동하지 않은 상태입니다. 그래서 그런것인지..
예를 들어 XE때의 회원포인트가 1000이지만, 레벨구역3(600~1200)에 해당합니다.
그런데 그누보드로 이전하니 모든 회원이 레벨2입니다. 일일이 기존회원레벨 확인해서 변경해줄 수도 없고,
그누보드의 포인트레벨 정책에 따라 레벨 변경할 수 있는 방법이 있습니까?
답변 4
$sql = "select * from {$g5['member_table']} where mb_level < 10";
$result = sql_query($sql);
while($row = sql_fetch_array($result)){
// 조건에맞춰서 포인트별 변경할 레벨을 지정하세요
if($row['mb_point']>0 && $row['mb_point'] <=599){
$change_level = 3;
}elseif($row['mb_point']>=600 && $row['mb_point'] <=1200){
$change_level = 4;
}
sql_query("update {$g5['member_table']} set mb_level = '".$change_level."' where mb_id='".$row['mb_id']."'"); // 레벨 변경
}
위처럼 코드를 간단히 짜서 php 파일 실행 시키시면 지정된 범위안에있는
포인트 별로 레벨을 재설정 해서 update 시켜줍니다
!-->회원 레벨 마다 각각 다르게 주고 싶단거잖아요?
제일 상단에
include_once('./_common.php');
이거 넣어주셔야 합니다
우선 xe레벨과 그누보드 레벨 단계가 다르잖아요
그누보드는 최상위레벨이 10이니....
레벨을 xe처럼 10이상을 설정 할 것인지 정해서(그누보드에서 레벨을 더 많은 단계를 만들어 사용할 필요성을 느끼지 못하겠습니다만)
레벨을 10이상으로 설정하는 작업부터하세요<--검색하면 나옵니다
다음처럼 단계별 레벨을 만들어 실행해 주면 됩니다
반드시 회원테이블을 백업 한 후 테스트하세요
<?
include "_common.php";
$tmpArr =array('','',599,1200, 1800, 2400.................);//<--레벨별 최고 포인트
for($i=3; $i< count($tmpArr); $i++){
$p1 = $tmpArr[$i-1]+1; $p2 = $tmpArr[$i];
sql_query("update {$g5['member_table']} set mb_level = $i where mb_point between $p1 and $p2");
}