일정 시간 지난 게시물 삭제 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

일정 시간 지난 게시물 삭제 정보

일정 시간 지난 게시물 삭제

본문

60일 정도로 게시후 60일 이상 지난 게시물을 자동삭제 하는 방법이 있는지요?
 
각 게시판.. 또는 그룹 ... 어떤 방법이든...
 
일정 시간 지난 게시물을 삭제 하려 합니다.
 
조언 부탁 드리겠습니다.
 
감사합니다.
  • 복사

댓글 전체

mysql 의 TO_DAYS() 란 함수를 잘 활용하시면 쉽게 처리할 수 있을 것 같군요.

예)
$sql = "delete from g4_write_free where TO_DAYS( CUR_DATE() ) - TO_DAYS(wr_datetime) >= 60";
mysql_query($sql);

관리자 페이지 헤더 쯤에 넣어두고 실행하시면 서버 부담이 없겠죠!
우선 답변 감사해요^^;;
궁금한게 있네요..
관리자 헤더에 적용한다면? 직접 60일 마다 클릭을 해주는건지요?
아니면;; 사용자가.. 게시물 을 접근할시 적용되는건지요..;;
그룹인지.? 각 게시판인지? 제가 함수를 잘 몰라서.. 어줍짠이 문의 드립니다.
미안해요,, 그리 잘 알지못해서..

한가지 더 말씀 드리고픈건..;;
혹... 관리자 헤더라는게 어디를 말씀 하시는건지..
부탁해요...
직접 클릭하는 건 아니구요. 관리자가 로그인하면 자동으로 실행되게 하는거죠.

관리자 헤더란  그누보드 디렉토리 보면 adm/ 있는데 거기 admin.head.php 가 있습니다.
거기 상단에 위 코드를
include_once("$g4[path]/head.sub.php"); 다음 쯤에 넣어줍니다.
위 코드는 free 라는 이름의 게시판일 때를 예로 들었습니다.
아흠.... 미안합니다..  답변의 이해를 못한것인지..
게시판 10번 을 10일 이상 지난것으로 간주하고 설정 해봤는대..
어떻게.. 반응이 보이지 않습니다..
어디에 문제가 있는것일까요?
소중한 지식.. 너무 감사합니다.

<?
if (!defined("_GNUBOARD_")) exit;

$begin_time = get_microtime();

include_once("$g4[path]/head.sub.php");
$sql = "delete from g4_write_10 where TO_DAYS( CUR_DATE() ) - TO_DAYS(wr_datetime) >= 10";
mysql_query($sql);

function print_menu1($key, $no)
{
    global $menu;
....................
아하... 아침에 생각난 ..^^;;
우선 가르쳐 주신 지식으로 정확히 해결 되었습니다.
혹시...
첨부 파일에 관련해서도 아시는것이 있으신지요?
디비에서 게시물은 삭제 되었지만..
첨부 이미지  파일은 계속적으로 쌓이고 있을태니...
이부분을 어떻게 처리해야할지...

포인트는 지급되었지만...

한번더 여쭈어 봅니다..
감사합니다.
다음처럼 코드를 추가해야겠군요.
파일 삭제가 중요한 거고, 그 외 필요한 작업도 있습니다.
bbs/ 폴더아래 delete.php 를 참고하셔서 완전한 삭제 처리를 연구해 보세요.

$sql = " select wr_id, bf_file from g4_write_free where TO_DAYS( CURDATE() ) - TO_DAYS(wr_datetime) >= 60";
$result = mysql_query($sql);

while ( $row = sql_fetch_array($result) ) {
            @unlink("$g4[path]/data/file/free/$row[bf_file]");
}


$sql = "delete from g4_write_free where TO_DAYS( CURDATE() ) - TO_DAYS(wr_datetime) >= 60";
mysql_query($sql);
© SIRSOFT
현재 페이지 제일 처음으로