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

조건문 좀 봐주세요 ㅠㅠ 채택완료

</p>

<p> </p>

<p>if ($_POST['act_button'] == "철회") {</p>

<p>    for ($i=0; $i<count($_POST['chk']); $i++) {</p>

<p>        // 실제 번호를 넘김

        $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);

    }</p>

<p>    $sql = " select ct_status

                    from {$g5['g5_shop_cart_table']}

                    where od_id = '$od_id' ";

    $result = sql_query($sql);</p>

<p>    $value = '';

    while ($row=sql_fetch_array($result)) {

        $value .= (($value)? ',' : '').$row['ct_status'];

    }</p>

<p>    $value2 = array('교환신청','교환중','교환완료','반품신청','반품중','반품완료');</p>

<p>    if (strpos($value, $value2) == false) {

        $od_return_status = '';

        $od_status = $ct_status;

        $od_return_memo = '';</p>

<p> </p>

<p>    $sql2 = " update {$g5['g5_shop_order_table']}

                set od_return_memo = '$od_return_memo',

                    od_return_status = '$od_return_status',

                    od_status = '$od_status'

                    where od_id = '$od_id' ";

    sql_query($sql2);</p>

<p> </p>

<p>    }</p>

<p>}</p>

<p>

 

이런걸 만들었는데요

 

철회버튼을 누를 시 cart_table에 업데이트 하는 것까진 정상적으로 되구요

 

뒤쪽의 order_table 쪽이 문젠데

 

    $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'];     }

    $value2 = array('교환신청','교환중','교환완료','반품신청','반품중','반품완료');

    if (strpos($value, $value2) == false) {         $od_return_status = '';         $od_status = $ct_status;         $od_return_memo = '';          $sql2 = " update {$g5['g5_shop_order_table']}                     set od_return_memo = '$od_return_memo',                         od_return_status = '$od_return_status',                         od_status = '$od_status'                         where od_id = '$od_id' ";         sql_query($sql2);     }  

 

이 부분이 해당 od_id의 ct_status 부분을 가져와서

 

value2에 해당하는 부분이 없을 시

 

        $od_return_status = '';         $od_status = $ct_status;         $od_return_memo = '';

 

이렇게 해서 DB 업데이트 해주는건데요

 

value2에 해당하는게 있어도 바뀌네요

 

뭐가 잘못된건가요?

 

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

답변 1개

채택된 답변
+20 포인트

$value2 = array('교환신청','교환중','교환완료','반품신청','반품중','반품완료');

배열 선언하셨으면 if (strpos($value, $value2)  이문구 이전에 배열을 loop해서 체크하셔야 합니다

 

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

답변에 대한 댓글 10개

if (strpos($value, $value2) == false) {

이걸

if (!in_array($value, $value2)) {

이렇게 바꿔봐도 결과는 같은데 다른 방법이 있나요?
$value를 찍어보세요 $value값 확인해보셔야 겠습니다.
아래 코드로 하면 1 이라고 잘 찍힙니다.
이제 보니 위에서 value값을 교환신청,교환중,교환완료,반품신청
이런식으로 쌓으셨네요
코드를 새로 짜셔야겠습니다.
1이라고 찍혀요
지금 문제가 ('교환신청','교환중','교환완료','반품신청','반품중','반품완료')

이게 없으면 바뀌어야 하는데

저게 있어도 바뀝니다 ㅠㅠ
od_id 가 고유값인가요? 코드 새로 올려드려요


[code]
$value2 = array('교환신청','교환중','교환완료','반품신청','반품중','반품완료');

$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)) {

if (!in_array($row['ct_status'], $value2)) { //없으면 업데이트

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

}
[/code]
네 고유값이에요

이 창에서 od_id는 하나밖에 뜨지 않아요

말씀대로 해봤는데 역시 업데이트가 되버리네요 ㅠㅠ
if (strpos($value, '교환신청') == false) {

이렇게 해서 특정으로 딱 집어주면 정상적으로 동작하는데 말이죠 ㅠㅠ
그냥

if (strpos($value, '교환신청') == false || strpos($value, '반품신청') == false) ...

이런식으로 쭉 나열해야 할까봐요 ㅠㅠ ㅋㅋㅋㅋ
$row['ct_status']이 !in_array에 없으면 업데이트
아래것으로 해서 $row['ct_status']값 찍힌거 확인해보세용

[code]
$value2 = array('교환신청','교환중','교환완료','반품신청','반품중','반품완료');

$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)) {

if (!in_array($row['ct_status'], $value2)) { //없으면 업데이트
echo $row['ct_status'];
$od_return_status = '';
$od_status = $ct_status;
$od_return_memo = '';
$sql2 = " update {$g5['g5_shop_order_table']}
set od_return_memo = '$od_return_memo',
od_return_status = '$od_return_status',
od_status = '$od_status'
where od_id = '$od_id' ";
sql_query($sql2);
}

}
[/code]
좀 줄여볼까 했는데 그냥 써야겠어요

|| 이걸루요 도와주셔서 너무 감사합니다 로또 당첨되세요~!

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

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

로그인

전체 질문 목록