채택완료

게시판 이동시 기존 테이블의 wr_num값에 대해 궁금합니다.

2017-04-12 (수) 21:53:59 4,660

CA라는 테이블과 CA_OLD라는 테이블이 있는데요

여기서 CA의 게시판에 글을 꽤 등록하고 CA_OLD라는 테이블에 이동을 했습니다.

우선 마지막 글 등록을 보니 아래처럼 wr_id,wr_num,wr_parent 값들이 각각 저렇게 나왔습니다.

--------------------------------------------

wr_id      wr_num     wr_parent     ~~~~    wr_subject

---------------------------------------------

 ~~~~~~~~~~~~생략~~~~~~~~~~~~~~~~~

 624       -624         624         ~~~~~    글 제목

=============================================

여기서 해결해야 할 부분이 생겼는데요.. CA_OLD로 이동하고 나서

CA라는 테이블에 새로 추가로 등록하는 데 기존 CA테이블의 wr_num 값이 -1로 되더라구요

아래처럼요

TABLE => CA

--------------------------------------------

wr_id      wr_num     wr_parent     ~~~~    wr_subject

---------------------------------------------

 ~~~~~~~~~~~~생략~~~~~~~~~~~~~~~~~

 625         -1            625         ~~~~~    글 제목

=============================================

common.lib.php에 보니깐 아래처럼 되어있던데 이것 때문에 -1로 되는건가요?

// 게시판의 다음글 번호를 얻는다.
function get_next_num($table)
{
    // 가장 작은 번호를 얻어
    $sql = " select min(wr_num) as min_wr_num from $table ";
    $row = sql_fetch($sql);
    // 가장 작은 번호에 1을 빼서 넘겨줌
    return (int)($row['min_wr_num'] - 1 );
}

전 wr_num이 -1이 아닌 wr_id나 wr_parent처럼 기존 갯수에 +1 이된 -625로 유지하고 싶은데

혹시 아시는 분 있으신가요??ㅠㅠ 

|

답변 4개 / 댓글 3개

채택된 답변
+20 포인트

코딩이 애매하시다면, 위에 적으신데로 bbs/write_update.php insert 위쪽에

$wr_num가 정의 되어있는데요 이걸 활용하셔도 되구요.

$wr_id = mysql_insert_id(); 이걸 활용해도 되겠네요. 

답변에 대한 댓글 1개

아하~~참고해 보도록 하겠습니다. 도움주셔서 감사드려요^^

등록하고 이동하고를 반복하는 터라서 <--- 그런 용도라면 원본 게시판 wr_num 값을 굳이 그렇게 설정할 이유가 없습니다

어차피 이동하면 원본 wr_num 값을 가져가는 것이 아니라 이동하면서 (이전 등록된 값 -1) 하여 새로이 부여하게 됩니다

1. 마지막 등록 글을 제외한 게시물 이동

2. 마지막 등록글 복사

3. 새로운 글이 하나 등록 된 후 위의 복사에 사용한 글 삭제

소스 수정해서 하려면 어려우니 이렇게 하면 되지않을까싶군요?

아니면

등록된 게시물 wr_num 값을 수동으로 변경 시켜주면 됩니다

리스트 스킨 상단에서

sql_query("update $write_table set wr_num =  wr_num -624 ");

한번 실행 후 코드 삭제

답변에 대한 댓글 1개

자료를 올리는 거라서요 하루에 몇개에서 수십개씩은 등록하고 이동하고를 반복하는 터라서
고심이 되요

그냥 wr_parent, wr_id 값 가져와서 붙이면 되는거 아닌가요?

'-'.$wr_parent;

이런 형태로요 

답변에 대한 댓글 1개

어느 소스에서 붙혀야 할지를 모르겠어요..

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