이거 해석가능한 용자님 계신가요?

이거 해석가능한 용자님 계신가요?

QA

이거 해석가능한 용자님 계신가요?

본문

g4 시절 어느 고마우신 프로그래머 "전0"님이 만들어주신 코드입니다.

g5 로 옮기면서 어떻게 수정해야하고 디비에서 어떤 테이블을 추가해야하는지 보시면 아시는분 계실까요>?

 


<?
// 주간/월간 활동지수 업데이트
//  cf_9에 다음 월 업데이트 시일, cf_8에 다음 주 업데이트 시일 저장
 
/////////// member 필드를 이용한 활동지수 계산 수식 저장변수
$activity_parameters = explode('|', $config['cf_5']);  // mb_3 ~ mb_11의 계수 +15|-1|0|+15|+3|+5|+2|+1|+10
$mb_n = 1;
foreach ($activity_parameters as &$p) {
 if($mb_n == 11)   // mycoupe 등록 여부를 wr_id로 저장해 놓은 필드.. 있고(1), 없음(0)에 대한 가중치
  $p = " CEILING(CAST(mb_$mb_n AS UNSIGNED) / 10000) * ($p)";
 else 
  $p = "CAST(mb_$mb_n AS UNSIGNED) * ($p)";
 $mb_n++;
}
$activity_point_equation = "( ".implode(' + ', $activity_parameters)." )";
if($config['cf_9']<=$g4['time_ymd']) { 
 update_activity_point('month');
}
if($config['cf_8']<=$g4['time_ymd']) { 
 update_activity_point('week');
}
/////////// 월/주간 활동지수 정보 저장 새로운 함수
function update_activity_point($term='month', $limitrow=60){
 global $g4, $activity_point_equation;
 $cf_n = "cf_9";
 $cf_subj = "월별활동지수처리";
 if ($term=='month') {
  $nextterm= date("Y-m-01", strtotime("next month") ); 
  $prevterm= date("Y-m", strtotime("last month") ); 
 } elseif ($term=='week') {
  $nextterm= date("Y-m-d", strtotime("next monday") ); 
  $prevterm= date("Y-m-d", strtotime("last monday") ); 
  $cf_n = "cf_8";
  $cf_subj = "주별활동지수처리";
 }
 
 $wtable="g4_activity_point";
 
 sql_query(" UPDATE $g4[config_table] SET {$cf_n}_subj='$cf_subj', {$cf_n}='$nextterm' "); // 다음 term 시작일(예: 다음달 1일)을 기록해 둠
 
 $result = sql_query(" SELECT mb_id, mb_apoint_{$term} AS prev_apoint, $activity_point_equation AS actpoint 
       FROM $g4[member_table] WHERE mb_level<48 AND mb_deal=0 
       ORDER BY actpoint DESC LIMIT 0,$limitrow");
 $i=0;
 while( $row=sql_fetch_array($result)) { 
  $i++; 
  sql_query(" INSERT INTO $wtable SET ap_term='$term', mb_date='$prevterm', mb_rank='$i', mb_id='$row[mb_id]', mb_point='".number_format($row[actpoint] - $row[prev_apoint])."', mb_sum='$row[actpoint]' ");
 }
 
 if (!$activity_point_equation) $activity_point_equation = 0; // 최악의 경우 'null'이 들어갈 수 있으므로.. 0으로 초기화 @2012-11-24
 sql_query(" UPDATE $g4[member_table] SET mb_apoint_{$term} = $activity_point_equation ");
}
?>​
 

이 질문에 댓글 쓰기 :

답변 1

$g4를 $g5로 바꾸시고 테이블명 동일한지만 확인하세요
답변을 작성하시기 전에 로그인 해주세요.
전체 255
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT