상품 한번만 구매가능하게 하기 채택완료
hazkiryo
7년 전
조회 1,548
</p>
<p>// 한번만 구매가능하도록
$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);</p>
<p>if (!$chk['it_id']) {
alert('이미 구매한 상품입니다.');
}</p>
<p>
영카트5 사용중입니다. 상품을 한번만 구매하게 하고싶습니다.
/shop/orderformupdate.php
제 생각대로 작성해봤는데 안되네요..
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
채택된 답변
+20 포인트
7년 전
영카트의 카트테이블에 구매에 관련된 내용이 들어가는게 맞습니다만
누락된게 있습니다.
ct_status 정보입니다.
여기에는 (주문,입금,준비,배송,완료,취소 ..)등의 값들이 들어갑니다.
주문을 1회만 한다는 조건은
주문을 할때부터 배송완료까지를 고려해야 하므로
ct_status in ('주문','입금','배송','취소','완료') 를 쿼리에 추가할수도 있지만
조금만 더 생각해보면
'취소'가 아니면 진행이 안되면 됩니다.
결국
ct_stauts != '취소'
로 간단하게 조건추가를 할수있겠죠
위의 내용을 문의하신 사항에 추가하면
</p>
<p>// 한번만 구매가능하도록</p>
<p>$sql = " select it_id from {$g5['g5_shop_cart_table']}</p>
<p> where mb_id = '{$member['mb_id']}'</p>
<p> and it_id = '$it_id'</p>
<p> and ct_stauts != '취소'</p>
<p>";</p>
<p>$row = sql_fetch($sql);</p>
<p>if (!$row['it_id']) { // 위에 그누위즈님이 이미 언급하셨네요</p>
<p> alert('이미 구매한 상품입니다.');</p>
<p>}</p>
<p>
와 같이 될수있습니다만
이 로직이 한군데서만 체크하면 된다면 그냥 두어도 되고
여러군데서 체크해야 하면
함수로 만들어서 공통 라이브러리에 넣어야겠죠
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인