Copy
if($act == "buy")
{
if(!count($_POST['ct_chk']))
alert("주문하실 상품을 하나이상 선택해 주십시오.");
// 선택필드 초기화
$sql = " update {$g5['g5_shop_cart_table']} set ct_select = '0' where od_id = '$tmp_cart_id' ";
sql_query($sql);
$fldcnt = count($_POST['it_id']);
for($i=0; $i<$fldcnt; $i++) {
$ct_chk = $_POST['ct_chk'][$i];
if($ct_chk) {
$it_id = $_POST['it_id'][$i];
// 본인인증, 성인인증체크
if(!$is_admin) {
$msg = shop_member_cert_check($it_id, 'item');
if($msg)
alert($msg, G5_SHOP_URL);
}
//장바구니 품절 및 예약 상품
$sql = " select b.it_2, b.it_soldout, a.it_name
from {$g5['g5_shop_cart_table']} a left join {$g5['g5_shop_item_table']} b on ( a.it_id = b.it_id )
where a.od_id = '$tmp_cart_id' ";
$result = sql_query($sql);
while ($row=sql_fetch_array($result)){
if ($row['it_soldout'] == '1')
{
alert("주문하시려는 상품 중 품절인 상품이 있습니다.");
}
if ($row['it_2'] == '1' && $row['it_2'] == '')
{
alert("예약상품과 일반상품은 같이 주문하실 수 없습니다.");
}
}
// 끝
$sql = " update {$g5['g5_shop_cart_table']}
set ct_select = '1',
ct_select_time = '".G5_TIME_YMDHIS."'
where od_id = '$tmp_cart_id'
and it_id = '$it_id' ";
sql_query($sql);
}
}
if ($is_member) // 회원인 경우
goto_url(G5_SHOP_URL.'/orderform.php');
else
goto_url(G5_BBS_URL.'/login.php?url='.urlencode(G5_SHOP_URL.'/orderform.php'));
}
장바구니 품절 및 예약 상품이라고 표시된 부분인데요
목적은 장바구니에서 상품을 체크해서 주문하기를 누를 때
1. 체크된 상품 중 어떤 하나라도 it_soldout이 1이면 품절인 상품이 있다는 알러트가 뜨고
2. it_2가 1인 상품과 비어 있는 상품은 같이 주문 못하게 만드는 것입니다.
1인 상품만일 때는 ok, 비어있는 상품만 있을 때도 ok
1과 비어 있는 것이 혼합은 no
그런데
it_soldout 부분은 장바구니에 1인 상품이 있으면 체크를 안해도 무조건 저 알러트가 뜨고
it_2인 상품은 알러트가 전혀 안 뜨고 그냥 넘어갑니다 ㅠㅠ
뭐가 잘못된 것일까요?
답변 1개 / 댓글 5개
채택된 답변
+20 포인트
eyekiss
2020-09-01 (화) 00:07:14
it_2 가 1 인 경우와 없는 경우를 따로 변수에 카운트해서 비교해야 합니다.
if ($row['it_2'] == '1' && $row['it_2'] == '') 이런 값은 존재하지 않습니다.
Copy
$it_1 = $it_0 = 0;
$sql = " select b.it_2, b.it_soldout, a.it_name
from {$g5['g5_shop_cart_table']} a left join {$g5['g5_shop_item_table']} b on ( a.it_id = b.it_id )
where a.od_id = '$tmp_cart_id' ";
$result = sql_query($sql);
while ($row=sql_fetch_array($result)){
if ($row['it_soldout'] == '1')
{
alert("주문하시려는 상품 중 품절인 상품이 있습니다.");
}
if ($row['it_2'] == '1')
{
if($it_0 > 0) alert("예약상품과 일반상품은 같이 주문하실 수 없습니다.");
$it_1++;
} else
if( $row['it_2'] == '')
{
if($it_1 > 0) alert("예약상품과 일반상품은 같이 주문하실 수 없습니다.");
$it_0++;
}
}
답변에 대한 댓글 5개
2020-09-01 (화) 10:41:55
2020-09-01 (화) 17:33:54
헉 그렇군요
그러면 모두가 1이거나 비어있으면 안뜨고
둘 다 혼합일때만 뜨게 하려면 어딜 바꿔야 하나요?
그러면 모두가 1이거나 비어있으면 안뜨고
둘 다 혼합일때만 뜨게 하려면 어딜 바꿔야 하나요?
eyekiss
2020-09-01 (화) 17:36:16
지금 소스가 그렇게 한건데요??
빈값이 있고, 1인 값이 있을때 알림창이 뜨도록..
빈값이 있고, 1인 값이 있을때 알림창이 뜨도록..
2020-09-01 (화) 17:42:56
아 그런건가요?
근데 왜 체크를 비어있는 것만 해도 알러트가 뜨죠? ㅠㅠ
혹시 체크하지 않아도 담아져있기만 해도 알러트가 뜨나요?
근데 왜 체크를 비어있는 것만 해도 알러트가 뜨죠? ㅠㅠ
혹시 체크하지 않아도 담아져있기만 해도 알러트가 뜨나요?
답변을 작성하려면 로그인이 필요합니다.
지금 말씀하신대로 수정을 다 했더니 알러트가 뜨긴 뜹니다.
근데 it_soldout 처럼 it_2가 1인 상품이 장바구니에 담겨 있으면
체크하지 않더라도 무조건 알러트가 뜨네요