설정일이 지난 메모 자동삭제시 첨부한 파일의 삭제처리방법
안녕하세요.
제목이 언뜻 이해가 안되실 것으로 생각되어 도움을 받고자하는
부분의 설명을먼저 하겠습니다.^^
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);
$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);
$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);
|
댓글을 작성하시려면 로그인이 필요합니다.
로그인
댓글 5개
파일을 순서대로 다운을 모두 받았는데 카운터는 마지막 파일에서 '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);