상품 복사시 조회수 초기화
본문
/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하도록 하는방법도 있습니다
변경전 ===================
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' 인지는 직접 확인해보셔요 상관없을것 같기도한데..