10일지나면 자동으로 공지를 해제하고 일반글로 전환하는 부분입니다

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
10일지나면 자동으로 공지를 해제하고 일반글로 전환하는 부분입니다

QA

10일지나면 자동으로 공지를 해제하고 일반글로 전환하는 부분입니다

본문

write_update.php 추가부부

 

$sql = " update {$write_table}
                set ca_name = '{$ca_name}',
                     wr_option = '{$html},{$secret},{$mail}',
                     wr_subject = '{$wr_subject}',
                     wr_content = '{$wr_content}',
                     wr_link1 = '{$wr_link1}',
                     wr_link2 = '{$wr_link2}',
                     mb_id = '{$mb_id}',
                     wr_name = '{$wr_name}',
                     wr_email = '{$wr_email}',
                     wr_homepage = '{$wr_homepage}',
                     wr_1 = '{$wr_1}',
                     wr_2 = '{$wr_2}',
                     wr_3 = '{$wr_3}',
                     wr_4 = '{$wr_4}',
                     wr_5 = '{$wr_5}',
                     wr_6 = '{$wr_6}',
                     wr_7 = '{$wr_7}',
                     wr_8 = '{$wr_8}',
                     wr_9 = '{$wr_9}',
                     wr_10 = '{$wr_10}',
                     wr_11 = '".G5_TIME_YMDHIS."',
                     wr_12 = '{$wr_12}',
                     wr_13= '{$wr_13}'

 

db_table.optimize.php

// 10일이 지난 공지글 삭제
$sql = " select bo_table,bo_notice from {$g5['board_table']} where bo_notice <> '' ";
$result = sql_query($sql);
while ($row=sql_fetch_array($result))
{    
if($row['bo_table']=='a1' || $row['bo_table']=='a3'){ 
    notice_delete($row['bo_table'],$row['bo_notice'],1);
}
}

 

common.lib.php

function notice_delete($bo_table,$wr_id,$day){
global $g5;
    $write_table = $g5['write_prefix'].$bo_table;

    $notice = "";
    $notice_array = explode(",", $wr_id);

    for($i=0;$i<count($notice_array);$i++){

        $sql = "select count(wr_id) as cnt from $write_table where wr_id='{$notice_array[$i]}' and (TO_DAYS('".G5_TIME_YMDHIS."') - TO_DAYS(wr_11)) > '{$day}' ";
        $row = sql_fetch($sql);

        if($row['cnt']>0){
            $bo_notice = board_notice($wr_id, $notice_array[$i], $notice);
            sql_query("update {$g5['board_table']} set bo_notice = '{$bo_notice}' where bo_table = '{$bo_table}'");
        }
    }
}

 

고수님들 답변 감사드립니다. 10일지나면 자동으로 공지를 해제하고 일반글로 전환하는 부분을 답변주신데로 했는데 하루로 잡고 설정해보니 하루지나도 공지가 해제되지 않습니다.

db에는 wr_1대신 wr_11에 정상적으로 값이 쓰여지는데 공지해제가 되지 않네요.;;

고수님들 답변 부탁드립니다.

이 질문에 댓글 쓰기 :

답변 4

안풀립니다. 날짜의 차이는 1 소스에는 차이 > $day로 되어 있어서 
차이가 2일이 되어야 풀리는 걸로......

select to_days('2018-06-15 00:00:01') = 737225

select to_days('2018-06-16 23:59:59') = 737226

 

혹시 위의 문제 약 48시간 차이인데 날수는 1일

날짜 비교 구문을 변경

 

and (TO_DAYS('".G5_TIME_YMDHIS."') - TO_DAYS(wr_11)) > '{$day}' 

==>

and (UNIX_TIMESTAMP('".G5_TIME_YMDHIS."') - UNIX_TIMESTAMP(wr_11)) > ($day*86400)

 

변경 후 테스트하시기 전에  g5_config 테이블의  cf_optimize_date 필드 날짜를 어제 날짜로 변경하신 후 테스트 해보세요

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

회원로그인

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