레벨이 올랐을 때 한번 포인트 차감되는 php sql 짜는데 도움부탁드려요.

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
레벨이 올랐을 때 한번 포인트 차감되는 php sql 짜는데 도움부탁드려요.

QA

레벨이 올랐을 때 한번 포인트 차감되는 php sql 짜는데 도움부탁드려요.

본문

일단 아래는 소스이구요. 

 


<?
$dbconn = mysql_connect("localhost","judelaw5883","icesun79");
mysql_select_db("judelaw5883.price", $dbconn);
mysql_select_db("judelaw5883.g4_member", $dbconn);
 
$date=$_GET['date']; 
$time=$_GET['time'];
$mcode=$_GET['mcode'];
$commision=$_GET['commision'];
$mb_id=$_GET['mb_id'];
$ip=$_GET['ip'];
 
 
mysql_query("insert into judelaw5883.price (date, time, mcode, commision, mb_id, ip) values ('{$date}','{$time}','{$mcode}','{$commision}','{$mb_id}','{$ip}')",$dbconn);
 
mysql_query("update judelaw5883.g4_member set mb_level = 3 where mb_id in 
(select judelaw5883.price.mb_id from judelaw5883.price group by judelaw5883.price.mb_id having count(mb_id) >= 5)", $dbconn);
 
mysql_query("update judelaw5883.g4_member set mb_point = (mb_point + 1000) where mb_id in 
(select judelaw5883.price.mb_id from judelaw5883.price group by judelaw5883.price.mb_id having count(mb_id) >= 1)", $dbconn);
?> 

 

소스 설명을 드리면 

 

A 서버에서 이벤트 발생시 제서버로 

 

http://제웹계정/gnuboard4/don/kkk.php?date=20120101&time=1200&mcode=gmarket&commision=150&mb_id=tester&ip=111.111.111.115 

 

이렇게 보내줍니다. 그래서 db의 price 테이블에 해당 정보를 저장합니다. 

 

이렇게 들어온 price 테이블을 가지고 그누보드의 g4_member 테이블의 해당 컬럼을 수정합니다. 

한번 이벤트 발생한 mb_id 에게 1000 원의 포인트를주고 5번 이벤트가 발생한 mb_id 에게 회원레벨 3을 주게됩니다. 

 

여기까지 위의 소스로 아주 잘 작동하고 있습니다.  

 

제가 원하는건 이제 회원 레벨 3이 되었을 때 단 한번만 5000을 차감 해주고 싶어요. 

제가 해보니 자꾸 회원레벨 3이되었을 때 5000원을 삭감하고 또 5000원이 모이면 또 삭감하게 됩니다. 

소스 구조상 회원 레벨이 3이될 때 무조건 5000원인데,, 레벨 3을 주면서 단 한번만 5000원 차감을 하고 싶습니다. 

 

차감되는 것 좀 부탁드립니다. 사진 파일을 설명드린 DB 구조입니다. 

 

일단 생각하기론 g4_member 테이블에 identifier_lv3​ 식별자 컬럼을 줘서 모두 0 을주고, 한번 차감이 되면 1로 바꿔주고

차감시 identifier_lv3 값이 1일 땐 차감이 이루어 지지 않게 하면되겠는데 제가 php mysql 정말 초보라 문법이나 sql을 

모르겠습니다 c라면 하겠는데요. ㅠ

 

일단 g4_member 테이블에  identifier_lv3​  컬럼 넣어주고

 

select * from judelaw5883​.g4_member where identifier_lv3 = true and ?????

 

여기까지가 한계입니다. 지금 sql php 책을 주문해놨는데, 

그전에 해결하고 싶은데 도움좀 부탁드릴께요. 

 

감사합니다. 건강조심하고 복받으세요~

 

 

 

3166c6a560ec6f4951c29ed74142e5d3_1409844327_5906.png
3166c6a560ec6f4951c29ed74142e5d3_1409844333_7806.png
 

 

 

이 질문에 댓글 쓰기 :

답변 2

1. common.php를 include 하는 방법을 사용하면 코드가 한결 쉬워집니다

-- bbs폴더의 화일들 소스코드를 보세요

2. 17행에서 넘어온 아이디만 적용하는 것이 아니라 A서버에서 넘어 올때 마다

    5번 이상 기록된 아이디 전체를 구해서 변경하는 코드라 제대로 된 프로그래밍이라 할 수 없습니다

3. 19행에서 g4_member 테이블에 포인트를 직접 넣는 것은 잘되는 것 같아보이지만 틀린 방법입니다

   왜냐하면 해당 아이디가 다른 곳에서 포인트를 변경하는 일이 발생하면 저렇게 넣어둔 값은

   없어져버립니다(그누보드의 실행 구조를 파악해야죠)

  --g4_point테이블에 그누보드의 insert_point함수를 이용해서 넣어야 제대로 적용됩니다

 

 

4. 원하는 기능은 아래처럼 구현 하면 됩니다

  1) price테이블 insert 후 g4_member테이블 여분필드에 횟수누적

      update g4_member set mb_1=mb_1 +1

  2) g4_member테이블에서 누적된 mb_1 값 추출

    select mb_1 from g4_member where mb_id='$mb_id'

  3) insert_point함수를 이용하여 1000포인트 적립

  3) 2)에서 구한 mb_1 값이 5이면 레벨 3으로 변경 및 insert_point 이용  -5000 포인트 기록

    -- 이렇게 하면 5번째 등록시 한번만 5천포인트 차감 됩니다

 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 126,530 | RSS
QA 내용 검색

회원로그인

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