cartupdate.php 주문하기 질문

cartupdate.php 주문하기 질문

QA

cartupdate.php 주문하기 질문

답변 2

본문

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



$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("예약상품과 일반상품은 같이 주문하실 수 없습니다.");
    }
}


이렇게 바꿔보세요

너무 감사합니다 ㅠㅠ

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

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

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

이것은 it_soldout도 동일하네요


//장바구니 품절 및 예약 상품
            $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("예약상품과 일반상품은 같이 주문하실 수 없습니다.");
                }
            }

 

일단 it_2에 대한 조건문을 바꿔봤습니다.

 

it_soldout은 값이 1인게 하나라도 포함될 시 알러트가 뜨는거고

 

it_2는 1과 빈 것이 동시에 잡혔을 때 알러트가 떠야 하니까 바꾼거긴 한데

 

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

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 2,662
© SIRSOFT
현재 페이지 제일 처음으로