구문 오류 좀 봐주세요 ㅠㅠ

구문 오류 좀 봐주세요 ㅠㅠ

QA

구문 오류 좀 봐주세요 ㅠㅠ

본문


if ($_POST['act_button'] == "철회") {
    for ($i=0; $i<count($_POST['chk']); $i++) {
        // 실제 번호를 넘김
        $k = $_POST['chk'][$i];
        $it_id = (int) $_POST['it_id'][$k];
        $ct_status = $_POST['ct_status2'][$k];
        $ct_status2 = '';
            
        $sql = " update {$g5['g5_shop_cart_table']}
                   set ct_status = '$ct_status',
                       ct_status2 = '$ct_status2'
                       where od_id = '$od_id'
                        and it_id = '$it_id' ";
        sql_query($sql);
    }
    $sql = " select ct_status
                    from {$g5['g5_shop_cart_table']}
                    where od_id = '$od_id' ";
    $result = sql_query($sql);
    $value = '';
    while ($row=sql_fetch_array($result)) {
        $value .= (($value)? ',' : '').$row['ct_status'];
    }
    if (!in_array($value,'교환신청') && !in_array($value,'교환중') && !in_array($value,'교환완료') && !in_array($value,'반품신청') && !in_array($value,'반품중') && !in_array($value,'반품완료')) {
        $od_return_status = '';
        $od_status = $ct_status;
        $od_return_memo1 = '';
        $od_return_memo2 = '';
        $sql2 = " update {$g5['g5_shop_order_table']}
                    set od_return_memo1 = '$od_return_memo1',
                        od_return_memo2 = '$od_return_memo2',
                        od_return_status = '$od_return_status',
                        od_status = '$od_status'
                        where od_id = '$od_id' ";
        sql_query($sql2);
    } else if (!in_array($value,'교환신청') && !in_array($value,'교환중') && !in_array($value,'교환완료')) {
            $od_return_memo1 = '';
            $sql2 = " update {$g5['g5_shop_order_table']}
                        set od_return_memo1 = '$od_return_memo1',
                            where od_id = '$od_id' ";
            sql_query($sql2);
    } else if (!in_array($value,'반품신청') && !in_array($value,'반품중') && !in_array($value,'반품완료')) {
            $od_return_memo2 = '';
            $sql2 = " update {$g5['g5_shop_order_table']}
                        set od_return_memo2 = '$od_return_memo2',
                            where od_id = '$od_id' ";
            sql_query($sql2);
    }
}

 

여기서 $value 값을 찍어보면

 

교환신청,교환신청,완료

 

이렇게 나옵니다.

 

그러면 

 

else if (!in_array($value,'반품신청') && !in_array($value,'반품중') && !in_array($value,'반품완료'))

 

이 조건으로 들어가야 하는데

 

if (!in_array($value,'교환신청') && !in_array($value,'교환중') && !in_array($value,'교환완료') && !in_array($value,'반품신청') && !in_array($value,'반품중') && !in_array($value,'반품완료')) {

 

이 조건으로 들어가버립니다

 

뭐가 문제일까요? ㅠㅠ

이 질문에 댓글 쓰기 :

답변 3

이제 배열이 빠졌으니  in_array => preg_match 으로 바꿔주세요

이렇게 할 경우

if (!preg_match('[교환신청|교환중|교환완료|반품신청|반품중|반품완료]',$value)) {

$od_return_status = '';
$od_status = $ct_status;
$od_return_memo1 = '';
$od_return_memo2 = '';

$sql2 = " update {$g5['g5_shop_order_table']}
set od_return_memo1 = '$od_return_memo1',
od_return_memo2 = '$od_return_memo2',
od_return_status = '$od_return_status',
od_status = '$od_status'
where od_id = '$od_id' ";
sql_query($sql2);

} elseif (!preg_match('[교환신청|교환중|교환완료]',$value)) {

$od_return_memo1 = '';

$sql2 = " update {$g5['g5_shop_order_table']}
set od_return_memo1 = '$od_return_memo1',
where od_id = '$od_id' ";
sql_query($sql2);

} elseif (!preg_match('[반품신청|반품중|반품완료]',$value)) {

$od_return_memo2 = '';

$sql2 = " update {$g5['g5_shop_order_table']}
set od_return_memo2 = '$od_return_memo2',
where od_id = '$od_id' ";
sql_query($sql2);

}

맨 위 것은 조건에 맞을 시 동작을 하는데

아래 것은 동작을 하지 않아요 잘못 넣은건가요?

$value 값을 조건문 위에 찍어보세요 머라고 나오는지 보시면 바로 이해되실거예요 

참고해서 사용하세요~


<?php
    $value1 = array('교환신청','교환중','교환완료','반품신청','반품중','반품완료');
    $value2 = array('교환신청','교환중','교환완료');
    $value3 = array('반품신청','반품중','반품완료');
    $value = array('0','1','2','3','반품중','교환완료');
    for($i=0; $i<count($value); $i++) {
    if (!in_array($value[$i], $value1)) { //없으면 카운트
        echo"Type1 $value[$i] <br>";
    } elseif (!in_array($value[$i], $value2)) { //없으면 카운트
        echo"Type2 $value[$i] <br>";
    } elseif (!in_array($value[$i], $value3)) { //없으면 카운트
        echo"Type3 $value[$i] <br>";
    }   
    }
?>
답변을 작성하시기 전에 로그인 해주세요.
전체 2,698
QA 내용 검색

회원로그인

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