최근게시물 베이스로 내글, 내 댓글을 구현하는 방법 질문드릴께요

최근게시물 베이스로 내글, 내 댓글을 구현하는 방법 질문드릴께요

QA

최근게시물 베이스로 내글, 내 댓글을 구현하는 방법 질문드릴께요

본문

new.php 와

new_delete.php 로 

내 글과 내 댓글 보기를 구현했을때,

 

관리자 페이지에서

최근 게시물 삭제 날짜가 14일이면.

14일 이전에 작성한 내 글과 내 댓글은 나오지 않는건가요?

 

 

그렇다면

최근 게시물 삭제 날짜를 3650으로 해놓고

실제

new.php 에서만 14일로 치환해줄수 있나요?

 

new.php를 봐도 날짜 받는 변수를 못찾겠습니다;

이 질문에 댓글 쓰기 :

답변 2

[새글] 삭제 처리는 /bbs/db_table.optimize.php 에서 처리됩니다. (common.php 에서 관리자가 로그인한 경우에만 실행됩니다.)

 

// 설정일이 지난 최근게시물 삭제
if($config['cf_new_del'] > 0) {
    $sql = " delete from {$g5['board_new_table']} where (TO_DAYS('".G5_TIME_YMDHIS."') - TO_DAYS(bn_datetime)) > '{$config['cf_new_del']}' ";
    sql_query($sql);
    sql_query(" OPTIMIZE TABLE `{$g5['board_new_table']}` ");
}
 

서로 같은 테이블을 쓴다면 같은 기간으로 처리가 될 테지만, 다른 테이블을 쓴다면, 따로 삭제는 되지 않을 가능성이 큽니다.

특정기간으로 설정하여 삭제가 되게끔 하고 싶다면, 위 코드를 응용하여 추가해주면 될 듯 합니다.

 

 

관리자에서 기간은 9999일로 해두고
new.php 에서만 14일 안에 작성된 게시물만 가져올 수는 없을까요?
where 절 다음에
$sql_common .= "BETWEEN DATE_ADD(NOW(),INTERVAL -2 WEEK) AND NOW()";

이렇게 써주면 아예 게시물을 못가져오네요;

아.. BETWEEN 앞에 and를 붙여야 하는군요;


if($config['cf_new_del'] > 0) {
  $tmp_new_del = "14";
    $sql = " delete from {$g5['board_new_table']} where (TO_DAYS('".G5_TIME_YMDHIS."') - TO_DAYS(bn_datetime)) > '{$tmp_new_del]}' ";
    sql_query($sql);
    sql_query(" OPTIMIZE TABLE `{$g5['board_new_table']}` ");
}
 


과 같이 해주면 될 듯 합니다.

참고로,
$g5['board_new_table'] 은 보통의 경우 g5_board_new 입니다.

새로 만든 db 정보가 다른 테이블이라면.. 기존의 파일에서는 삭제하는 부분이 없기 때문에,
영원히 삭제되지 않습니다.

관리자 설정의 설정일 cf_new_del 에 따라 삭제되게 하려면, 위 파일에 해당 db 테이블 삭제코드도 추가해 주어야 합니다. 이부분에 대한 검토를 다시 해보셧으면 합니다.

새게시물은 db_optimizer 에서 설정한 날짜 이전꺼는 삭제합니다.

그래서 new.php 에 날짜는 없는걸겁니다.

그렇게 구현하실려면 쿼리에서 날짜를 넣어주셔야 할겁니다.

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

회원로그인

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