포인트 초기화 관련 질문드립니다.

포인트 초기화 관련 질문드립니다.

QA

포인트 초기화 관련 질문드립니다.

답변 2

본문

전체 회원 포인트 초기화를 하고 싶어서 찾아보고

<?php
$sub_menu = "200210";
include_once("./_common.php");
auth_check($auth[$sub_menu], "r");
// 테이블 락을 걸고
$sql = " LOCK TABLES $g5[member_table] WRITE, $g5[point_table] WRITE ";
_query($sql);
$sql = " select mb_id, sum(po_point) as sum_point from $g5[point_table] group by mb_id order by mb_id ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
    $sql = " update $g5[member_table]
                set mb_point = '$row[sum_point]'
              where mb_id = '$row[mb_id]' ";
 sql_query($sql);
}
sql_query(" delete from $g5[point_table] ");
sql_query(" alter table $g5[point_table] auto_increment=1 ");
$count = 0;
$sql = " select mb_id, mb_point from $g5[member_table] order by mb_id ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
    $sql = " insert $g5[point_table]
                set mb_id = '$row[mb_id]',
                    po_datetime = '$g5[time_ymdhis]',
                    po_content = '포인트리셋',
                    po_point = '$row[mb_point]' ";
    sql_query($sql);
    $count++;
}
sql_query(" update g5_point set po_point = '0'; ");
// 테이블 락을 풀고
$sql = " UNLOCK TABLES ";
sql_query($sql);
echo "<span size=5>총 {$count}건의 회원포인트 내역이 정리 되었습니다.</span>";
?>
<p><input type=button value='포인트 페이지로' onClick="javascript:self.location='./point_list.php'"></p>

 

이 소스를 넣었더니, 지금까지 지급되었던 내역까지 모두 초기화가 되더라구요,,,

지금까지 지급되었던 내역은 그대로 놔두고

전체 회원들의 포인트를 0으로 만드려면 어떻게 해야 할까요?

이 질문에 댓글 쓰기 :

답변 2

g5_member 테이블에 mb_point 0으로 업데이트시키면 되지않을까요?

$sql = " select mb_id, sum(po_point) as sum_point from $g5[point_table] group by mb_id order by mb_id ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
    $sql = " update $g5[member_table]
                set mb_point = '$row[sum_point]'
              where mb_id = '$row[mb_id]' ";
 sql_query($sql);
}
이부분만 따로 실행시키면 되겠네요

그 아래 쿼리부분이 point 테이블을 비우는 쿼리입니다

어딜 지워야 할까요? 초보자라서요/ 잘몰라서요
<?php
$sub_menu = "200210";
include_once("./_common.php");
auth_check($auth[$sub_menu], "r");
// 테이블 락을 걸고
$sql = " LOCK TABLES $g5[member_table] WRITE, $g5[point_table] WRITE ";
@sql_query($sql);
$sql = " select mb_id, sum(po_point) as sum_point from $g5[point_table] group by mb_id order by mb_id ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
    $sql = " update $g5[member_table]
                set mb_point = '$row[sum_point]'
              where mb_id = '$row[mb_id]' ";
 sql_query($sql);
}

sql_query(" update g5_point set po_point = '0'; ");
// 테이블 락을 풀고
$sql = " UNLOCK TABLES ";
sql_query($sql);
echo "<span size=5>총 {$count}건의 회원포인트 내역이 정리 되었습니다.</span>";
?>
<p><input type=button value='포인트 페이지로' onClick="javascript:self.location='./point_list.php'"></p>

아래부분 지웠더니 아무 효과가 안나타나서요

지금까지 지급되었던 내역은 그대로 놔두고

전체 회원들의 포인트를 0으로 만드려면 어떻게 해야 할까요?

<-------- 이건 아무 의미가 없습니다

포인트 내역이 남아있으면 다음번 포인트 지급할때 내역을 합산해서 회원 테이블 mb_point필드를 업데이트 해버립니다

 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 29
© SIRSOFT
현재 페이지 제일 처음으로