테스트 사이트 - 개발 중인 베타 버전입니다

올해 처음으로 질문좀 드리겠습니다. 채택완료

민쯩먼저깔게요 8년 전 조회 4,322

a게시판 글이 100개정도 있습니다. 필드는 50개

b게시판 글이 300개정도 있습니다. 필드는 72개 

서로 필드갯수가 다릅니다. 

 

a게시판을 b게시판과 같이 디비를 어떻게 만들 수 잇을까요?

쉽게 말해 글 100개는 살리면서 필드구조만 b게시판처럼 하고 싶다는 것입니다.

뭐라고 설명할 방법이 없네~,,ㅋ

 

이렇게 될지...

 

b게시판 디비에 a게시판 wr_id 1~100까지는 다시 집어넣고 싶은데 어떻게 할 수 있을지요..

b게시판중에 a게시판 wr_id 1~100까지는 대체되는 것입니다.

 

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트
그누위즈

어쨋든 게시판의 db내용을 옮기려면

해당 게시글을 읽어오고 각 필드(wr_subject, wr_content등)를 변수에 담고

그 이후에 기존의 wr_id 1,2,3번등 쭉쭉 업데이트로 기존의 가져오고 싶은 내용으로 갱신해줘야하는데

게시판을 개조해서

체크박스 이후에 게시물이동로직을 이용하면 구현이 가능할것같고

그것이 어렵다면

각각의

게시물의 view.skin.php페이지쪽이나 list.skin.php페이지에서

wr_id 몇번으로 옮길지 입력하고 확인버튼누르면 쫙 일괄로 업데이트 되는등

방법은 수십가지가 있겠습니다.

제머리로는 나오는게 해당 a게시판의 1번게시물에 들어갔을때에

 

하단에

</p><p>$table = "g5_write_b";</p><p>   $sql = " update $table</p><p>                set wr_num = '$view[$wr_num]',</p><p>                     wr_reply = '$view[$wr_reply]',</p><p>                     wr_comment = $view[$wr_comment],</p><p>                     ca_name = '$view[$ca_name]',</p><p>                     wr_option = '$view[$wr_option]',</p><p>                     wr_subject = '$view[$wr_subject]',</p><p>                     wr_content = '$view[$wr_content]',</p><p>                     wr_1 = '$view[wr_1]',</p><p>                     wr_2 = '$view[wr_2]'</p><p><span class="Apple-tab-span" style="white-space:pre">					</span> where wr_id = '1' ";</p><p>    sql_query($sql);</p><p>

 

뭐 대략 이런식으로 업데이트문을 바로 날려주면

담는즉시 날리면서 업데이트 하겠지요

물론 디비는 충분히 백업해놓으시고 작업하셔야하겠죠

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

민쯩먼저깔게요
8년 전
감사합니다. 꾸벅~

댓글을 작성하려면 로그인이 필요합니다.

r
8년 전

게시판a와 게시판b의 wr_id가 동일하다면 다음처럼 쿼리한번으로 처리하시면 됩니다.

다음 쿼리는 a, b 테이블을 기준으로 a의 해당 필드에 b의 해당필드의 값으로 변경하는데

기준은 a와 b의 wr_id가 동일한것을 기준으로 처리합니다.

업데이트하고자하는 필드를 모두 입력하시면 됩니다.  

게시판 두개를 복사해서 간단히 테스트 완료되 쿼리입니다. 

update testa a, testb b  </p><p>    set a.wr_subject = b.wr_subject, a.wr_content = b.wr_content
    where a.wr_id = b.wr_id;
 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

r
root
8년 전
아 혹시 전체를 적용하기전에 정상적으로 실행되는지 특정 wr_id만 적용해 보고 싶다면 where를 다음처럼 해보세요.
wr_id 가 1인것만 해보고 싶을때
[code]where a.wr_id = b.wr_id and a.wr_id = 1;[/code]
wr_id가 1, 2, 3인것을 해보고 싶을때
[code]where a.wr_id = b.wr_id and a.wr_id in (1, 2, 3);[/code]
민쯩먼저깔게요
8년 전
진심 감사합니다~~ 꼭 해내겠습니다!!

댓글을 작성하려면 로그인이 필요합니다.

r
8년 전

관리자로 로그인하면 게시판목록에 "선택복사", "선택이동"이란 놈이 있는데

이것이 bbs/move.php를 사용합니다.

실제 데이타 복사나, 이동처리하는것은 bbs/move_update.php 인데

이 파일에서 insert 쿼리 부분에 a 게시판의 추가된 50개 필드만 처리해서 선택복사 해보는것이 좋을것 같습니다.

1. 작업시 move_update.php는 백업받아두시고

2. move_update.php 수정하여 선택복사 해보시면서

3. 뭔가 문제가 생기면 새로 추가되는 b 게시판에 잘못들어간 데이타만 삭제하는 방식으로 진행하면 될것 같습니다. 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

민쯩먼저깔게요
8년 전
감사합니다. 전설의 루트님이시군요 ㅎ 꾸벅~
두분 다 채택해드려야 하는데...
r
root
8년 전
> wr_id 1~100까지는 대체되는 것입니다.
대체되는 것이었군요. 자세히 안읽고 통합되는 것으로 생각하고 답변을 드렸네요.ㅠㅠ
민쯩먼저깔게요
8년 전
아흐 감사합니다~

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인