상품 한번만 구매가능하게 하기
본문
// 한번만 구매가능하도록
$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);
이렇게 바꾸세요
답변을 작성하시기 전에 로그인 해주세요.