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'];
}
$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);
}
}
이런걸 만들었는데요
철회버튼을 누를 시 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개 / 댓글 10개
$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]
이 창에서 od_id는 하나밖에 뜨지 않아요
말씀대로 해봤는데 역시 업데이트가 되버리네요 ㅠㅠ
이렇게 해서 특정으로 딱 집어주면 정상적으로 동작하는데 말이죠 ㅠㅠ
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)) {
이렇게 바꿔봐도 결과는 같은데 다른 방법이 있나요?