상품 복사시 조회수 초기화 채택완료
/adm/shop_admin/itemcopyupdate.php 파일에서 수정을 해야하는거 같은데요;;
</p>
<p>// 상품테이블의 필드가 추가되어도 수정하지 않도록 필드명을 추출하여 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;</p>
<p> $sql_common .= " , $fld = '".addslashes($cp[$fld])."' ";
}</p>
<p>$sql = " insert {$g5['g5_shop_item_table']}
set it_id = '$new_it_id'
$sql_common ";
sql_query($sql);</p>
<p>
위 소스에서 foreach 안에 if 문 조건에 $fid == 'it_hit' 를 추가해봤는데 저 부분은 아닌거 같네요;;
혹시 상품 복사시 조회수는 기존 상품의 조회수를 가져오지않고 초기화시킨 0 으로 가져오고,
상품 등록일시 / 수정일시도 복사를 시도한 날짜로 바꾸고 싶습니다...(기존 상품과 헷갈리지 않기 위함)
위 코드부분에서 sql insert 부분에 강제로 set 시켜야 하나요??
답변 2개
addslashes($cp[$fld])
이안에 어떤 쿼리가 들어있는지 확인해보시고 원하는 조건을 더 추가하시면 될거같습니다.
아니면 안전하게 insert 후 update하도록 하는방법도 있습니다
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
변경전 ===================
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' 인지는 직접 확인해보셔요 상관없을것 같기도한데..
답변에 대한 댓글 1개
알려주신 방법으로 해도 적용이 되진 않아서 혹시나 addslashes 아래에 적용해야하나 싶어서 아래 코드로 수정하고 복사해봤는데도 안되네요 ㅠㅠㅠ
[code]
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);
[/code]
$sql 을 echo 로 찍어봤는데
it_hit = '1741' , it_time = '2020-11-26 16:18:48' , it_update_time = '2020-12-07 15:13:40'
적용안된채로 출력이 되네요;; 좀 더 고민해봐야겠습니다ㅠㅠㅠ
다시 한번 도움 주셔서 감사드립니다 ㅠㅠ
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
조나단 님이 좀 더 상세하게 알려주셔서 그거 먼저 적용을 해봤는데 원하는 결과가 나오질 않네요;;
@병원에서일해요 님께서 알려주신 방법처럼 insert 후에 update 하는 방식으로 해야할 듯 합니다...
적용을 하게 된다면요... 일단은 보류 상태라 작업을 진행하진 않았지만 도움주셔서 감사드립니다!