포인트 초기화 관련 질문드립니다. 채택완료
전체 회원 포인트 초기화를 하고 싶어서 찾아보고
<?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(" 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개
답변에 대한 댓글 3개
<?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필드를 업데이트 해버립니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
$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 테이블을 비우는 쿼리입니다