설정일이 지난 메모 자동삭제시 첨부한 파일의 삭제처리방법 > 그누4 질문답변

그누4 질문답변

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

설정일이 지난 메모 자동삭제시 첨부한 파일의 삭제처리방법 정보

설정일이 지난 메모 자동삭제시 첨부한 파일의 삭제처리방법

본문

안녕하세요.
 
제목이 언뜻 이해가 안되실 것으로 생각되어 도움을 받고자하는
부분의 설명을먼저 하겠습니다.^^
 
1, 쪽지를 보낼때에 파일을 첨부하도록 한후 받은쪽지를 저장이 가능하게 하였으며
    저장된 쪽지는 자동삭제를 수행하지 않으며 수동 삭제시에만 메모와 첨부 파일이
    동시에 삭제가 되도록 하였습니다.(개별삭제 및 여러개를 선택한후 일괄삭제 포함)
 
2, 쪽지 저장시엔 첨부한 파일의 이름을 변경하여 복사(카피) 하여 보관합니다.
 
설명:
처음 쪽지 등록시  첨부한 파일이름이 123.zip 이라면 메모(쪽지)저장과 함께 복사하면서
abc_123.zip 이라고 카피하여 저장합니다.
 
저장된 메모가 아닌 일반메모를 (받은메모.보낸메모) 를수동삭제시엔 처음 쪽지 등록시 
첨부한 파일이름인 123.zip 을 메모와 함께 동시에 삭제되며 메모를 저장하면서 복사(카피)된
파일은 수동으로 삭제할 경우에만 삭제 됩니다.
         
 
 
여기서 도움을 받고자 하는부분은 아래의 내용입니다. 
 
저장된 쪽지가 아닌 일반쪽지 (보낸쪽지 , 받은쪽지) 일경우 설정일이 지난 메모는
자동삭제 처리가 됩니다.
자동삭제 되는 메모에서 첨부된 파일이 존재할 경우 첨부파일까지 동시에
삭제하는 방법을 제능력으로는 도저히 해결을 못하고 있습니다.^^
 
 
임시방편으로 무식하게 첨부된 파일이 있는 메모는 자동삭제가 안되게
처리를 해두었지만 관리적인 면에서 어려움이 많은것 같습니다.
 
//원본
// 설정일이 지난 메모 삭제
$sql = " delete from $g4[memo_table]
          where me_recv_mb_id = '$member[mb_id]'
   and me_send_datetime < '".date("Y-m-d H:i:s", $g4[server_time] - (86400 * $config[cf_memo_del]))."' ";
sql_query($sql);
 
 
 
 
//수정된 상태
//memofile ='' 첨부된 파일이 없을때
//memodate = '0'  저장한메모가 아닐때
// 저장된 메모가 아니고 첨부파일이 없을때만 설정일이 지난 메모 삭제
$sql = " delete from $g4[memo_table]
          where me_recv_mb_id = '$member[mb_id]'
            and memodate = '0'
   and memofile =''
   and me_send_datetime < '".date("Y-m-d H:i:s", $g4[server_time] - (86400 * $config[cf_memo_del]))."' ";
sql_query($sql);
 
  • 복사

댓글 전체

그러고 보니 어떨결에 G4 버그를 하나 찾은것 같군요.

파일을 순서대로 다운을 모두 받았는데 카운터는 마지막 파일에서 '0'으로 기록되고 있군요.

^^;
제가 봐도 질문의 내용이 햇갈려서 추가 설명을 합니다.

//수정된 상태
//memofile ='' 첨부된 파일이 없을때
//memodate = '0'  저장한메모가 아닐때
// 저장된 메모가 아니고 첨부파일이 없을때만 설정일이 지난 메모 삭제
$sql = " delete from $g4[memo_table]
          where me_recv_mb_id = '$member[mb_id]'
            and memodate = '0'
  and memofile =''
  and me_send_datetime < '".date("Y-m-d H:i:s", $g4[server_time] - (86400 * $config[cf_memo_del]))."' ";
sql_query($sql);


위의 삭제 구문에서 첨부된 파일이 없을때 즉 and memofile ='' <-를 뺀후에
삭제당할 쪽지의 번호를 전부 가져온다음 각번호마다 첨부한 파일이 있는것은
메모와 함께 파일까지 동시에 삭제 처리를 해야만 하는데 도저히 구현을
못하고 있습니다.
검색 및 궁금한 분들을 위해서 해결한 방법을 남깁니다.

// 설정일이 지난 메모 이면서 저장한 메모가 아닌것중 내꺼만 전부 가져오기
  $sql3 = " select * from $g4[memo_table]
          where me_recv_mb_id = '$member[mb_id]'
            and memodate = '0'
            and me_send_datetime < '".date("Y-m-d H:i:s", $g4[server_time] - (86400 * $config[cf_memo_del]))."' ";
  $resultm = sql_query($sql3);

// 뺑뺑이를 돌리면서 대조하여 삭제준비
 while ($rowm = sql_fetch_array($resultm))
  {
 if ($rowm[memofile])
    {
  // 삭제될 쪽지에 첨부한 파일이 있다면 파일부터 삭제
    @unlink("$g4[path]/data/file/memo_data/$rowm[memofile]");
     
    }
 
 } // 뺑뺑이끝
// 설정일이 지난 메모 이면서 저장한 메모가 아닌것은 내꺼만 전부삭제
$sql = " delete from $g4[memo_table]
          where me_recv_mb_id = '$member[mb_id]'
            and memodate = '0'
  and me_send_datetime < '".date("Y-m-d H:i:s", $g4[server_time] - (86400 * $config[cf_memo_del]))."' ";
sql_query($sql);
© SIRSOFT
현재 페이지 제일 처음으로