상품 한번만 구매가능하게 하기

상품 한번만 구매가능하게 하기

QA

상품 한번만 구매가능하게 하기

본문


// 한번만 구매가능하도록
$sql = " select it_id from {$g5['g5_shop_cart_table']}
          where mb_id = '{$member['mb_id']}' and it_id = '$it_id' ";
$row = sql_fetch($sql);
if (!$chk['it_id']) {
    alert('이미 구매한 상품입니다.');
}

 

영카트5 사용중입니다. 상품을 한번만 구매하게 하고싶습니다.

/shop/orderformupdate.php

 

제 생각대로 작성해봤는데 안되네요..

이 질문에 댓글 쓰기 :

답변 2

영카트의 카트테이블에 구매에 관련된 내용이 들어가는게 맞습니다만

 

누락된게 있습니다.

 

ct_status 정보입니다.

여기에는 (주문,입금,준비,배송,완료,취소 ..)등의 값들이 들어갑니다.

 

주문을 1회만 한다는 조건은

주문을 할때부터 배송완료까지를 고려해야 하므로

ct_status in ('주문','입금','배송','취소','완료') 를 쿼리에 추가할수도 있지만

조금만 더 생각해보면

'취소'가 아니면 진행이 안되면 됩니다.

결국

 

ct_stauts != '취소'

로 간단하게 조건추가를 할수있겠죠

 

위의 내용을 문의하신 사항에 추가하면

 


// 한번만 구매가능하도록
$sql = " select it_id from {$g5['g5_shop_cart_table']}
          where mb_id = '{$member['mb_id']}'
                   and it_id = '$it_id'
                   and ct_stauts != '취소'
";
$row = sql_fetch($sql);
if (!$row['it_id']) {     // 위에 그누위즈님이 이미 언급하셨네요
    alert('이미 구매한 상품입니다.');
}

와 같이 될수있습니다만

 

이 로직이 한군데서만 체크하면 된다면 그냥 두어도 되고

여러군데서 체크해야 하면 

 

함수로 만들어서 공통 라이브러리에 넣어야겠죠

 

 

 

소스코드가 말이안됩니다.

쿼리 결과를 $row 변수에 담아놓고

아래에서는 전혀 연관없는 $chk 변수에 if문을 사용하셨어요

$row = sql_fetch($sql);

부분을

$chk = sql_fetch($sql);

이렇게 바꾸세요

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

회원로그인

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