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

cartupdate.php 주문하기 질문 채택완료

블랑숑 5년 전 조회 2,667

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개

채택된 답변
+20 포인트
세크티
5년 전

</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개

블랑숑
5년 전
너무 감사합니다 ㅠㅠ

근데 여전히 it_2가 1인 상품과 아닌 상품이 장바구니에 같이 있으면

it_2가 1이 아닌 상품만 체크해서 주문하면 주문이 되야 하는데 알러트가 뜨네요

it_2가 1인 상품이 없으면 주문이 잘 됩니다.

이것은 it_soldout도 동일하네요

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

5년 전

</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과 빈 것이 동시에 잡혔을 때 알러트가 떠야 하니까 바꾼거긴 한데

 

저렇게 바꾸니까 어떻게 주문하던 알러트가 안 뜨네요 ㅠㅠ

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

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

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

로그인