테스트 사이트 - 개발 중인 베타 버전입니다

상품 한번만 구매가능하게 하기 채택완료

hazkiryo 7년 전 조회 2,975

</p>

<p>// 한번만 구매가능하도록

$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('이미 구매한 상품입니다.');

}</p>

<p>

 

/shop/orderformupdate.php

 

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

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

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

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

답변 4개

채택된 답변
+20 포인트
7년 전

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

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

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

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

 

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

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

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

짜증 나는 일이겠습니다

 

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

 

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

 

로그인 후 평가할 수 있습니다

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

7년 전

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

로그인 후 평가할 수 있습니다

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

격렬한저항

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

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

로그인 후 평가할 수 있습니다

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

격렬한저항

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

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

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

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

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

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

로그인