조건문 좀 봐주세요 ㅠㅠ 채택완료
</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개
$value2 = array('교환신청','교환중','교환완료','반품신청','반품중','반품완료');
배열 선언하셨으면 if (strpos($value, $value2) 이문구 이전에 배열을 loop해서 체크하셔야 합니다
답변에 대한 댓글 10개
아래 코드로 하면 1 이라고 잘 찍힙니다.
이제 보니 위에서 value값을 교환신청,교환중,교환완료,반품신청
이런식으로 쌓으셨네요
코드를 새로 짜셔야겠습니다.
이게 없으면 바뀌어야 하는데
저게 있어도 바뀝니다 ㅠㅠ
[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]
이렇게 해서 특정으로 딱 집어주면 정상적으로 동작하는데 말이죠 ㅠㅠ
if (strpos($value, '교환신청') == false || strpos($value, '반품신청') == false) ...
이런식으로 쭉 나열해야 할까봐요 ㅠㅠ ㅋㅋㅋㅋ
아래것으로 해서 $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]
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
이걸
if (!in_array($value, $value2)) {
이렇게 바꿔봐도 결과는 같은데 다른 방법이 있나요?