sql 구문에 $i 변수 처리 방법 문의

sql 구문에 $i 변수 처리 방법 문의

QA

sql 구문에 $i 변수 처리 방법 문의

본문

고객 클레임 사진을 각 주문번호에 업로드하는 기능을 구현중인데,

5개의 사진까지 등록할 수 있도록 하였으며,  기존 등록된 이미지는 놔두고 변경하거나 추가하려는 이미지만 넣었을때 db에 업데이트 되도록 하려고 합니다.

기존에는 새로 입력하는 값외에 기존값들이 빈값으로 업데이트되는 문제가 있어서요.

도움 부탁드립니다.

 

아래처럼 했더니 업데이트 기능이 전혀 되지 않는 상황이며,

claim_img값들은 정상적으로 넘어오고 있습니다.


<?php
 
//실제 적용된 부분
    for($i=1;$i<6;$i++){
        if($claim_img.$i) {
            $sql = " UPDATE {$g5['g5_shop_order_table']}
                        set claim_img.$i = '$claim_img.$i'
                     where od_id = '$od_id' ";
        }
    }
//
 
?>

이 질문에 댓글 쓰기 :

답변 5

수정이 된것만 구분해서 처리하시면 됩니다.

$_FILES 로 넘어오는 값을 if 로 처리하시면 될것 같습니다.


for($i=1;$i<6;$i++){
    if($claim_img.$i){
        $subsql[] = " claim_img".$i." = '".$claim_img.$i."'";
    }                                     
}
if(sizeof($subsql)>0){
    $sql = " UPDATE {$g5['g5_shop_order_table']}
                    set ".implode(",",$subsql)." where od_id = '$od_id' ";
}
$claim_img.$i

=> 이렇게 하면 $climg_img 와 $i 변수를 합하게 됩니다.

${'claim_img'.$i}

=> 이렇게 해야 $claim_img1, $claim_img2

=> 이라는 변수값이 적용됩니다.


<?php 
//실제 적용된 부분
    for($i=1;$i<6;$i++){
        if($claim_img.$i) {
            $sql = " UPDATE {$g5['g5_shop_order_table']}
                        set claim_img{$i} = '{$claim_img}{$i}'
                     where od_id = '{$od_id}' ";
            sql_query($sql);
        }
    }
// 
?>

셀렉트문으로 기존에 있는값을 가져오거나, 셀렉트해서 기존이미지가 있다면 새로운 이미지만 업데이트하도록 분기해주시면 될거같습니다

 

여러분이 도움을 주시려고 하셨으나 다 적용이 안되어서,

다소 무식하지만,

개별적으로 if문과 sql구문을 넣어줘서 처리하는식으로 일단 해결은 했습니다.

소스가 이리길어져야하나 싶긴하네요...

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

회원로그인

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