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

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

QA

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

본문

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

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

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

 

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

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

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

 

이렇게 될지...

 

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

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

 

 

 

이 질문에 댓글 쓰기 :

답변 3

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

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

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

게시판을 개조해서

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

그것이 어렵다면

각각의

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

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

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

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

 

하단에


$table = "g5_write_b";
   $sql = " update $table
                set wr_num = '$view[$wr_num]',
                     wr_reply = '$view[$wr_reply]',
                     wr_comment = $view[$wr_comment],
                     ca_name = '$view[$ca_name]',
                     wr_option = '$view[$wr_option]',
                     wr_subject = '$view[$wr_subject]',
                     wr_content = '$view[$wr_content]',
                     wr_1 = '$view[wr_1]',
                     wr_2 = '$view[wr_2]'
					 where wr_id = '1' ";
    sql_query($sql);

 

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

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

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

 

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

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

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

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

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

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

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

 

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

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

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

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

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

update testa a, testb b  
    set a.wr_subject = b.wr_subject, a.wr_content = b.wr_content
    where a.wr_id = b.wr_id;
 

아 혹시 전체를 적용하기전에 정상적으로 실행되는지 특정 wr_id만 적용해 보고 싶다면 where를 다음처럼 해보세요.
wr_id 가 1인것만 해보고 싶을때

where a.wr_id = b.wr_id and a.wr_id = 1;

wr_id가 1, 2, 3인것을 해보고 싶을때
where a.wr_id = b.wr_id and a.wr_id in (1, 2, 3);

답변을 작성하시기 전에 로그인 해주세요.
전체 0 | RSS
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT