채택완료

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

2018-09-06 (목) 11:07:23 3,235
Copy
// 한번만 구매가능하도록
$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('이미 구매한 상품입니다.');
}

/shop/orderformupdate.php

상품을 한번만 구매가능하도록 하려고 위와 같이 했는데

위 소스로하면 구매한 내역이 없어도 무조건 메세지가 뜨네요..

도움 주시면 감사하겠습니다.

|

답변 4개 / 댓글 1개

채택된 답변
+20 포인트

이 코드를 orderformupdate.php 어느 부분에 넣엇다는 것인가요?

$it_id 가 어디서 온 것인가요?

ct_stauts != '취소' <-- 이렇게 해서는 안되고

ct_stauts != '취소' and ct_stauts != '쇼핑' 이렇게 되어야 실제 주문한 것만 체크하겟죠

//장바구니 상품 재고 검사 <--이 부분의 for문 안에서 체크하면 it_id를 조건으로 할 수 있습니다만

그렇지 않으면 $it_id 값이 나올 곳이 없죠

어쨌던 아주 안 좋은 방법인 것이 주소 등 주문 사항을 모두 작성하고 나서 구입할 수 없다고 한다면

짜증 나는 일이겠습니다

cartupdate.php나 item.php에서 체크하는 것이 그나마 나은 방법입니다

order 테이블은 상품정보가 기록 되지않기 때문에 cart테이블에서 하는 것이 맞습니다

order 테이블에서 구입한내용 조건으로 주시고 쿼리를 하셔야합니다

2018-09-06 (목) 11:54:48

cart_table이면 장바구니... 아닌가요?

구매 한 내역에서 체크해야 하니까 order 에서 체크해야될거같아요

2018-09-06 (목) 11:21:08

위 쿼리는 구매한 내역이 있다면 $row가 있는거 아닌가요?

그럼 조건문에서 ! 빼셔야 하는게 아닌지...

답변에 대한 댓글 1개

[code]
if ($row['it_id']) {
alert('이미 구매한 상품입니다.');
}
[/code]

저도 그래서 !를 빼봤는데 마찬가지네요 ㅠㅠ

답변을 작성하려면 로그인이 필요합니다.