게시물을 자동으로 다른 특정 게시판에 복사하는것이 가능할까요? 정보
게시물을 자동으로 다른 특정 게시판에 복사하는것이 가능할까요?본문
테이블명이 A인 게시판에서 글을 등록하면, 관리자가 게시물 복사를 하지 않아도 자동으로 B라는 게시판에 복사되도록 할수 있을까 해서 문의드립니다..
댓글 전체
아래 구문을 .... write_update.skin.php 에 넣으시면 돼요.
$se_table = "g4_write_test2" ; // 다른 테이블에 변수 전달할경우
$sql = " insert into $se_table
set wr_num = '$wr_num',
wr_reply = '$wr_reply',
wr_comment = 0,
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',
wr_link1_hit = 0,
wr_link2_hit = 0,
wr_trackback = '$wr_trackback',
wr_hit = 0,
wr_good = 0,
wr_nogood = 0,
mb_id = '$member[mb_id]',
wr_password = '$wr_password',
wr_name = '$wr_name',
wr_email = '$wr_email',
wr_homepage = '$wr_homepage',
wr_datetime = '$g4[time_ymdhis]',
wr_last = '$g4[time_ymdhis]',
wr_ip = '$_SERVER[REMOTE_ADDR]',
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' ";
sql_query($sql);
$se_table = "g4_write_test2" ; // 다른 테이블에 변수 전달할경우
$sql = " insert into $se_table
set wr_num = '$wr_num',
wr_reply = '$wr_reply',
wr_comment = 0,
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',
wr_link1_hit = 0,
wr_link2_hit = 0,
wr_trackback = '$wr_trackback',
wr_hit = 0,
wr_good = 0,
wr_nogood = 0,
mb_id = '$member[mb_id]',
wr_password = '$wr_password',
wr_name = '$wr_name',
wr_email = '$wr_email',
wr_homepage = '$wr_homepage',
wr_datetime = '$g4[time_ymdhis]',
wr_last = '$g4[time_ymdhis]',
wr_ip = '$_SERVER[REMOTE_ADDR]',
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' ";
sql_query($sql);
1, 복사할 게시판의 wr_num 값을 가져온후 순서를 만들어야 하고
2, 복사할 게시판에 글갯수를 올려 주어야 하고
3, 인서트된 게시글 번호에서 wr_parent 값을 업데이트 시켜야 하고
4, 복사한 게시글을 새글로 등록 시킨다면 인서트 시켜야 하고
5, 첨부한 파일을 복사해야 하고
6, $insert_id = mysql_insert_id(); // ......이것도 해야 되나?ㅎㅎ
2, 복사할 게시판에 글갯수를 올려 주어야 하고
3, 인서트된 게시글 번호에서 wr_parent 값을 업데이트 시켜야 하고
4, 복사한 게시글을 새글로 등록 시킨다면 인서트 시켜야 하고
5, 첨부한 파일을 복사해야 하고
6, $insert_id = mysql_insert_id(); // ......이것도 해야 되나?ㅎㅎ
물론 맨 위 구문만 넣으면 안되죠.. ^^
해봤는데요..
복사된 곳에서.. 글 삭제가 안되요.. 제가 최고관리자인데도요 ㅠㅠ 어쩌죠?
지워야하는데...
복사된 곳에서.. 글 삭제가 안되요.. 제가 최고관리자인데도요 ㅠㅠ 어쩌죠?
지워야하는데...
에공....^^ 큰 틀만 말하고 그냥 잠을 잤어요.. ㅡ,,ㅡ 큰 틀만 말한곤데...
컥.. 그렇군요.. 그럼 자동으로 들어가게 하는건 안한다고 하더라도..
글을 지워야 하는데.. 어떻게 하죠? 삭제가 안되요 ㅠㅠ
그 게시판(복사된 게시판)에 있는거 다 지워도 상관은 없습니다..
글을 지워야 하는데.. 어떻게 하죠? 삭제가 안되요 ㅠㅠ
그 게시판(복사된 게시판)에 있는거 다 지워도 상관은 없습니다..
현 상태에서는 게시판에서는 삭제를 못합니다. DB에서 삭제 하거나
관리자 모드에서 해당 게시판을 삭제한후 같은 이름으로 다시 생성 하세요.
관리자 모드에서 해당 게시판을 삭제한후 같은 이름으로 다시 생성 하세요.
네.. 그렇게 했습니다. 감사합니다.
제가사용중인 데이타 복사하는 방법 이므로 참고하세요.
(참고로 제가 사용중인 타계정 복사코드를 일부 수정 하였으므로 불필요한 코드도 있을 겁니다.)
// 게시판의 다음글 번호를 얻는다.
function get_next_nums2($tables2)
{
// 가장 작은 번호를 얻어
$sqls2 = " select min(wr_num) as min_wr_num from $tables2 ";
$rows2 = sql_fetch($sqls2);
// 가장 작은 번호에 1을 빼서 넘겨줌
return (int)($rows2[min_wr_num] - 1);
}
if ($member[mb_id])
{
$mb_id = $member[mb_id];
$wr_name = $board[bo_use_name] ? $member[mb_name] : $member[mb_nick];
$wr_password = $member[mb_password];
$wr_email = $member[mb_email];
$wr_homepage = $member[mb_homepage];
}
else
{
$mb_id = "";
// 비회원의 경우 이름이 누락되는 경우가 있음
if (!trim($wr_name))
alert("이름은 필히 입력하셔야 합니다.");
$wr_password = sql_password($wr_password);
}
$cwrite_tables ="sub4_1"//복사할 게시판
$write_tables2 = $g4[write_prefix] . $cwrite_tables;// 게시판 테이블 전체이름
$g4['board_tables2'] = $g4['table_prefix'] . "board"; // 게시판 설정 테이블
$g4['board_new_tables2'] = $g4['table_prefix'] . "board_new"; // 게시판 새글 테이블
$g4['board_file_tables2'] = $g4['table_prefix'] . "board_file"; // 게시판 첨부파일 테이블
$wr_nums2 = get_next_nums($write_tables2); //마지막 번호
$sql = " insert into $write_tables2
set wr_num = '$wr_nums2',
wr_reply = '',
wr_comment = 0,
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',
wr_link1_hit = 0,
wr_link2_hit = 0,
wr_trackback = '$wr_trackback',
wr_hit = 0,
wr_good = 0,
wr_nogood = 0,
mb_id = '$member[mb_id]',
wr_password = '$wr_password',
wr_name = '$wr_name',
wr_email = '$wr_email',
wr_homepage = '$wr_homepage',
wr_datetime = '$g4[time_ymdhis]',
wr_last = '$g4[time_ymdhis]',
wr_ip = '$_SERVER[REMOTE_ADDR]',
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' ";
sql_query($sql);
$wr_ids2 = mysql_insert_id();
// 부모 아이디에 UPDATE
sql_query(" update $write_tables2 set wr_parent = '$wr_ids2' where wr_id = '$wr_ids2' ");
// 새글 INSERT
//sql_query(" insert into $g4[board_new_table] ( bo_table, wr_id, wr_parent, bn_datetime ) values ( '$cwrite_tables, '$wr_id', '$wr_id', '$g4[time_ymdhis]' ) ");
sql_query(" insert into $g4[board_new_tables2] ( bo_table, wr_id, wr_parent, bn_datetime, mb_id ) values ( '$cwrite_tables', '$wr_ids2', '$wr_ids2', '$g4[time_ymdhis]', '$member[mb_id]' ) ");
// 게시글 1 증가
sql_query("update $g4[board_tables2] set bo_count_write = bo_count_write + 1 where bo_table = '$cwrite_tables' ");
$sql3 = " select * from $g4[board_file_table] where bo_table = '$bo_table' and wr_id = '$wr_id' order by bf_no ";
$result4 = sql_query($sql3);
$src_dirs = "$g4[path]/data/file/$bo_table"; // 원본 디렉토리
$dst_dirs = "$g4[path]/data/file/$cwrite_tables"; // 복사본 디렉토리
for ($ks=0; $rows3 = sql_fetch_array($result4); $ks++)
{
if ($rows3[bf_file])
{
// 원본파일을 복사하고 퍼미션을 변경
@copy("$src_dirs/$rows3[bf_file]", "$dst_dirs/$rows3[bf_file]");
@chmod("$dst_dirs/$rows3[bf_file]", 0606);
}
$sqls = " insert into $g4[board_file_tables2]
set bo_table = '$cwrite_tables',
wr_id = '$wr_ids2',
bf_no = '$rows3[bf_no]',
bf_source = '$rows3[bf_source]',
bf_file = '$rows3[bf_file]',
bf_download = '$rows3[bf_download]',
bf_content = '".addslashes($rows3[bf_content])."',
bf_filesize = '$rows3[bf_filesize]',
bf_width = '$rows3[bf_width]',
bf_height = '$rows3[bf_height]',
bf_type = '$rows3[bf_type]',
bf_datetime = '$rows3[bf_datetime]' ";
sql_query($sqls);
}
(참고로 제가 사용중인 타계정 복사코드를 일부 수정 하였으므로 불필요한 코드도 있을 겁니다.)
// 게시판의 다음글 번호를 얻는다.
function get_next_nums2($tables2)
{
// 가장 작은 번호를 얻어
$sqls2 = " select min(wr_num) as min_wr_num from $tables2 ";
$rows2 = sql_fetch($sqls2);
// 가장 작은 번호에 1을 빼서 넘겨줌
return (int)($rows2[min_wr_num] - 1);
}
if ($member[mb_id])
{
$mb_id = $member[mb_id];
$wr_name = $board[bo_use_name] ? $member[mb_name] : $member[mb_nick];
$wr_password = $member[mb_password];
$wr_email = $member[mb_email];
$wr_homepage = $member[mb_homepage];
}
else
{
$mb_id = "";
// 비회원의 경우 이름이 누락되는 경우가 있음
if (!trim($wr_name))
alert("이름은 필히 입력하셔야 합니다.");
$wr_password = sql_password($wr_password);
}
$cwrite_tables ="sub4_1"//복사할 게시판
$write_tables2 = $g4[write_prefix] . $cwrite_tables;// 게시판 테이블 전체이름
$g4['board_tables2'] = $g4['table_prefix'] . "board"; // 게시판 설정 테이블
$g4['board_new_tables2'] = $g4['table_prefix'] . "board_new"; // 게시판 새글 테이블
$g4['board_file_tables2'] = $g4['table_prefix'] . "board_file"; // 게시판 첨부파일 테이블
$wr_nums2 = get_next_nums($write_tables2); //마지막 번호
$sql = " insert into $write_tables2
set wr_num = '$wr_nums2',
wr_reply = '',
wr_comment = 0,
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',
wr_link1_hit = 0,
wr_link2_hit = 0,
wr_trackback = '$wr_trackback',
wr_hit = 0,
wr_good = 0,
wr_nogood = 0,
mb_id = '$member[mb_id]',
wr_password = '$wr_password',
wr_name = '$wr_name',
wr_email = '$wr_email',
wr_homepage = '$wr_homepage',
wr_datetime = '$g4[time_ymdhis]',
wr_last = '$g4[time_ymdhis]',
wr_ip = '$_SERVER[REMOTE_ADDR]',
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' ";
sql_query($sql);
$wr_ids2 = mysql_insert_id();
// 부모 아이디에 UPDATE
sql_query(" update $write_tables2 set wr_parent = '$wr_ids2' where wr_id = '$wr_ids2' ");
// 새글 INSERT
//sql_query(" insert into $g4[board_new_table] ( bo_table, wr_id, wr_parent, bn_datetime ) values ( '$cwrite_tables, '$wr_id', '$wr_id', '$g4[time_ymdhis]' ) ");
sql_query(" insert into $g4[board_new_tables2] ( bo_table, wr_id, wr_parent, bn_datetime, mb_id ) values ( '$cwrite_tables', '$wr_ids2', '$wr_ids2', '$g4[time_ymdhis]', '$member[mb_id]' ) ");
// 게시글 1 증가
sql_query("update $g4[board_tables2] set bo_count_write = bo_count_write + 1 where bo_table = '$cwrite_tables' ");
$sql3 = " select * from $g4[board_file_table] where bo_table = '$bo_table' and wr_id = '$wr_id' order by bf_no ";
$result4 = sql_query($sql3);
$src_dirs = "$g4[path]/data/file/$bo_table"; // 원본 디렉토리
$dst_dirs = "$g4[path]/data/file/$cwrite_tables"; // 복사본 디렉토리
for ($ks=0; $rows3 = sql_fetch_array($result4); $ks++)
{
if ($rows3[bf_file])
{
// 원본파일을 복사하고 퍼미션을 변경
@copy("$src_dirs/$rows3[bf_file]", "$dst_dirs/$rows3[bf_file]");
@chmod("$dst_dirs/$rows3[bf_file]", 0606);
}
$sqls = " insert into $g4[board_file_tables2]
set bo_table = '$cwrite_tables',
wr_id = '$wr_ids2',
bf_no = '$rows3[bf_no]',
bf_source = '$rows3[bf_source]',
bf_file = '$rows3[bf_file]',
bf_download = '$rows3[bf_download]',
bf_content = '".addslashes($rows3[bf_content])."',
bf_filesize = '$rows3[bf_filesize]',
bf_width = '$rows3[bf_width]',
bf_height = '$rows3[bf_height]',
bf_type = '$rows3[bf_type]',
bf_datetime = '$rows3[bf_datetime]' ";
sql_query($sqls);
}
http://sir.co.kr/bbs/board.php?bo_table=g4_qa&sca=&sfl=wr_subject%7C%7Cwr_content&stx=%BD%D6%B5%D5%C0%CC&sop=and
구현형태는 다르나 동일한 맥락에서 완성된 지니아빠님의 스킨
sir.co.kr/bbs/tb.php/g4_skin/19598
구현형태는 다르나 동일한 맥락에서 완성된 지니아빠님의 스킨
sir.co.kr/bbs/tb.php/g4_skin/19598
ㅋㅋ 헐랭이님 감사합니다... 잘되네요..
자동 복사하기