상품 복사시 조회수 초기화

상품 복사시 조회수 초기화

QA

상품 복사시 조회수 초기화

답변 2

본문

/adm/shop_admin/itemcopyupdate.php 파일에서 수정을 해야하는거 같은데요;;

 


// 상품테이블의 필드가 추가되어도 수정하지 않도록 필드명을 추출하여 insert 퀴리를 생성한다. (상품코드만 새로운것으로 대체)
$sql_common = "";
$fields = sql_field_names($g5['g5_shop_item_table']);
foreach($fields as $fld) {
    if ($fld == 'it_id' || $fld == 'it_sum_qty' || $fld == 'it_use_cnt' || $fld == 'it_use_avg')
        continue;
    $sql_common .= " , $fld = '".addslashes($cp[$fld])."' ";
}
$sql = " insert {$g5['g5_shop_item_table']}
            set it_id = '$new_it_id'
                $sql_common ";
sql_query($sql);

 

위 소스에서 foreach 안에 if 문 조건에 $fid == 'it_hit' 를 추가해봤는데 저 부분은 아닌거 같네요;;

 

혹시 상품 복사시 조회수는 기존 상품의 조회수를 가져오지않고 초기화시킨 0 으로 가져오고,

 

상품 등록일시 / 수정일시도 복사를 시도한 날짜로 바꾸고 싶습니다...(기존 상품과 헷갈리지 않기 위함)

 

위 코드부분에서 sql insert 부분에 강제로 set 시켜야 하나요??

이 질문에 댓글 쓰기 :

답변 2

addslashes($cp[$fld])

이안에 어떤 쿼리가 들어있는지 확인해보시고 원하는 조건을 더 추가하시면 될거같습니다.

 

아니면 안전하게 insert 후 update하도록 하는방법도 있습니다

인사가 늦었습니다! 답변 감사드립니다~!

조나단 님이 좀 더 상세하게 알려주셔서 그거 먼저 적용을 해봤는데 원하는 결과가 나오질 않네요;;

님께서 알려주신 방법처럼 insert 후에 update 하는 방식으로 해야할 듯 합니다...

적용을 하게 된다면요... 일단은 보류 상태라 작업을 진행하진 않았지만 도움주셔서 감사드립니다!

변경전 ===================

foreach($fields as $fld) {
    if ($fld == 'it_id' || $fld == 'it_sum_qty' || $fld == 'it_use_cnt' || $fld == 'it_use_avg')
        continue;
    $sql_common .= " , $fld = '".addslashes($cp[$fld])."' ";
}

변경후 ===================

foreach($fields as $fld) {
    if ($fld == 'it_id' || $fld == 'it_sum_qty' || $fld == 'it_use_cnt' || $fld == 'it_use_avg')
        continue;
    if($fld == 'it_hit'){ // 필드명이 it_hit이면
        $sql_common .= " , $fld = '0' ";
// it_hit = '0'
        continue;
    }
    if($fld == 'it_time' || $fld == 'it_update_time'){ //필드명이 it_time 이나 it_update_time이면
        $sql_common .= " , $fld = '".G5_TIME_YMDHIS."' ";
//it_time = 오늘일시
        continue;
    }

    $sql_common .= " , $fld = '".addslashes($cp[$fld])."' ";
}

 

it_hit = '0' 으로 해놨는데 it_hit = 0 인지, it_hit = '0' 인지는 직접 확인해보셔요 상관없을것 같기도한데..

답변 감사드립니다...

알려주신 방법으로 해도 적용이 되진 않아서 혹시나 addslashes 아래에 적용해야하나 싶어서 아래 코드로 수정하고 복사해봤는데도 안되네요 ㅠㅠㅠ


foreach($fields as $fld) {
    if ($fld == 'it_id' || $fld == 'it_sum_qty' || $fld == 'it_use_cnt' || $fld == 'it_use_avg')
        continue;

    $sql_common .= " , $fld = '".addslashes($cp[$fld])."' ";

    if( $fId == 'it_hit' ){
        $sql_common .= " , $fId = '0' ";
        continue;
    }

    if( $fId == 'it_time' || $fId == 'it_update_time' ){
        $sql_common .= " , $fId = '".G5_TIME_YMDHIS."' ";
        continue;
    }

}

$sql = " insert {$g5['g5_shop_item_table']}
			set it_id = '$new_it_id'
                $sql_common ";
echo $sql;
exit;
sql_query($sql);


$sql 을 echo 로 찍어봤는데

it_hit = '1741' , it_time = '2020-11-26 16:18:48' , it_update_time = '2020-12-07 15:13:40'

적용안된채로 출력이 되네요;; 좀 더 고민해봐야겠습니다ㅠㅠㅠ

다시 한번 도움 주셔서 감사드립니다 ㅠㅠ

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 30
© SIRSOFT
현재 페이지 제일 처음으로