cartupdate.php 주문하기 질문 채택완료
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_fetch($sql);
if ($result['it_soldout'] == '1') {
alert("주문하시려는 상품 중 품절인 상품이 있습니다."); }
if ($result['it_2'] == '1') {
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')); }
빨갛게 된 부분을 변경하였는데요
알러트가 잘 나오긴 하는데
조건에 맞는 상품이 아니더라도 무조건 알러트가 나오네요
뭐가 잘못된건가요?
만들고 싶은 방향은 체크한 상품 중 $it_soldout이나 $it_2이 1인 상품이 있으면 알러트가 뜨면서 주문이 안되게 하는거에요
답변 2개
</p>
<pre>
$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')
{
alert("예약상품과 일반상품은 같이 주문하실 수 없습니다.");
}
}
</pre>
<p>
이렇게 바꿔보세요
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
</p>
<p>//장바구니 품절 및 예약 상품
$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);</p>
<p> while ($row=sql_fetch_array($result)){
if ($row['it_soldout'] == '1')
{
alert("주문하시려는 상품 중 품절인 상품이 있습니다.");
}</p>
<p> if ($row['it_2'] == '1' && $row['it_2'] == '')
{
alert("예약상품과 일반상품은 같이 주문하실 수 없습니다.");
}
}</p>
<p>
일단 it_2에 대한 조건문을 바꿔봤습니다.
it_soldout은 값이 1인게 하나라도 포함될 시 알러트가 뜨는거고
it_2는 1과 빈 것이 동시에 잡혔을 때 알러트가 떠야 하니까 바꾼거긴 한데
저렇게 바꾸니까 어떻게 주문하던 알러트가 안 뜨네요 ㅠㅠ
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
근데 여전히 it_2가 1인 상품과 아닌 상품이 장바구니에 같이 있으면
it_2가 1이 아닌 상품만 체크해서 주문하면 주문이 되야 하는데 알러트가 뜨네요
it_2가 1인 상품이 없으면 주문이 잘 됩니다.
이것은 it_soldout도 동일하네요