cartupdate.php 상품 목록 중 특정 함수 검수 질문

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
cartupdate.php 상품 목록 중 특정 함수 검수 질문

QA

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_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

it_2 가 1 인 경우와  없는 경우를 따로 변수에 카운트해서 비교해야 합니다.

if ($row['it_2'] == '1' && $row['it_2'] == '') 이런 값은 존재하지 않습니다.

 


              $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++;
                }
            }

아 그렇군요 감사합니다 ㅠㅠ

지금 말씀하신대로 수정을 다 했더니 알러트가 뜨긴 뜹니다.

근데 it_soldout 처럼 it_2가 1인 상품이 장바구니에 담겨 있으면

체크하지 않더라도 무조건 알러트가 뜨네요

답변을 작성하시기 전에 로그인 해주세요.
전체 267
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT