두개 게시판 동시에 글쓰기 글 순서 문제??wr_id구하기? > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

두개 게시판 동시에 글쓰기 글 순서 문제??wr_id구하기? 정보

두개 게시판 동시에 글쓰기 글 순서 문제??wr_id구하기?

본문

안녕하세요
 
포인트6만점 날려버리고 겨우겨우 투표해서 2000포인트 얻었어요 ㅠ.ㅠ
겨우 질문 합니다 ㅠ.ㅠ


http://sir.co.kr/bbs/board.php?bo_table=g4_qa&wr_id=144306&sca=&sfl=wr_subject%7C%7Cwr_content&stx=%B0%D4%BD%C3%C6%C7+%B5%BF%BD%C3&sop=and

를 참고해서 게시판 A에 글을 쓸때, 
게시판 "spec_db" 에 동시에 글을 올릴 수 있도록 했습니다.
이때 제목을 wr_3값으로 들어가게 했습니다. 내용은 빈내용으로나두구요
카테고리는 bo_table값으로 들어가도록 했습니다.
더 낳아가서 관리자만 작성하는 게시판이라 체크(wr_14)를 할경우 수정이든 새글쓰기든 게시판B에 글을 올릴 수 있도록 했습니다.


소스:
bbs/write.update.php

300 line 부근

==================중략=================
    $wr_id = mysql_insert_id();

    // 부모 아이디에 UPDATE
    sql_query(" update $write_table set wr_parent = '$wr_id' where wr_id = '$wr_id' ");

    // 새글 INSERT
    //sql_query(" insert into $g4[board_new_table] ( bo_table, wr_id, wr_parent, bn_datetime ) values ( '$bo_table', '$wr_id', '$wr_id', '$g4[time_ymdhis]' ) ");
    sql_query(" insert into $g4[board_new_table] ( bo_table, wr_id, wr_parent, bn_datetime, mb_id ) values ( '$bo_table', '$wr_id', '$wr_id', '$g4[time_ymdhis]', '$member[mb_id]' ) ");

    // 게시글 1 증가
    sql_query("update $g4[board_table] set bo_count_write = bo_count_write + 1 where bo_table = '$bo_table'");

include "append_else.php"; // (스펙,일정게시판동시 쓰기 위해)2010.02.26


    // 쓰기 포인트 부여
    if ($w == '')
    {
     
        if ($notice)
        {

==================후략=================




append_else.php 문서(bbs/write.update.php에 인클루드 됩니다.) 내용



<?
include_once("./_common.php");

if ($bo_table == "navi" || $bo_table == "pc" || $bo_table == "3dav" || $bo_table == "pc" || $bo_table == "sp" || $bo_table == "etc" ){
 if ($wr_14){ 
    $sql = " insert into g4_write_spec_db
                set wr_num = '$wr_num',
                  wr_reply = '$wr_reply',
          wr_option = '$html,$secret,$mail', 
                  wr_comment = 0,
                    ca_name = '$bo_table',
                    wr_content = '$wr_3',
                    wr_subject = '$wr_3',
                    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]'";
    sql_query($sql);

    $wr_id = mysql_insert_id();

    // 부모 아이디에 UPDATE
    sql_query(" update g4_write_spec_db set wr_parent = '$wr_id' where wr_id = '$wr_id' ");

    // 새글 INSERT
    //sql_query(" insert into $g4[board_new_table] ( bo_table, wr_id, wr_parent, bn_datetime ) values ( 'spec_db', '$wr_id', '$wr_id', '$g4[time_ymdhis]' ) ");
    sql_query(" insert into $g4[board_new_table] ( bo_table, wr_id, wr_parent, bn_datetime, mb_id ) values ( 'spec_db', '$wr_id', '$wr_id', '$g4[time_ymdhis]', '$member[mb_id]' ) ");

    // 게시글 1 증가
    sql_query("update $g4[board_table] set bo_count_write = bo_count_write + 1 where bo_table = 'spec_db'");
}
}
   
   
?>




여기까지는 잘 됩니다.


그런데,
여기서 문제점이 있습니다.

게시판 A는 문제가 없는데
게시판"spec_db"에서 글 리스트 중 맨 처음(글 1번과 2번)으로 들어가 버립니다.
맨 나중으로 들어가야 하는데 말이죠

즉, 게시판 "spec_db" 는 원래 운영 되는 게시판이고, 글이 이미 20개 있습니다.

그럼 게시판 A에서 글을 쓸때 위 팁을 이용해서 글쓰기를 하면

게시판 "spec_db "에 21번째에 글이 들어가야 하는데,
1번으로 예전 글 을 모두 몰아내고  맨 첫글 전으로 들어가는 것입니다.

또한가지 위의 문제와 더불어, view화면에선 삭제가 되는데, list화면에서 체크후 선택 삭제시 삭제가 되지 않습니다.

아마도 같은 원인 인것 같습니다. wr_id값이 문제인것 같은데..

글이 제대로 등록되게 하려면 어떻게 해야 할까요?

댓글 전체

if ($wr_14){ 
$wr_num_spec = get_next_num($g4_write_spec_db);  // 추가 - 위치(반영될 행) 변경 해 보면서..

$sql = " insert into g4_write_spec_db
                set wr_num = '$wr_num_spec',  // 변경
.......
.......

// 부모 아이디에 UPDATE
 sql_query(" update g4_write_spec_db set wr_parent = '★$wr_num_spec★' where wr_id = '$wr_id' "); // 별과별사이수정

참고 해 보세요.

common.lib.php 내용 중
// 게시판의 다음글 번호를 얻는다. 
function get_next_num($table)
감사합니다. 바로 해보고 알려드릴꼐요~정말 감사합니다. 사랑합니다
error file : /bbs/write_update.php
일단 이렇게 나와서 수정해볼께요
방금 수정했는데

==> $wr_num_spec = get_next_num($g4_write_spec_db); 
==> $wr_num_spec = get_next_num(g4_write_spec_db); 
했습니다
만,

글도 제대로 올라가는데..

다음과 같은 에러창이 뜹니다.
(메세지창)
"글이 존재하지 않습니다.
글이 삭제되었거나 이동하였을 수 있습니다.
확인"
그리고 spec_db 게시판의 게시물이 삭제가 안됩니다. ㅠ.ㅠ
이번엔 view화면에서도 삭제가 안되네요ㅠ.ㅠ

참고로 이상한것이... get next num으로 뽑아온 숫자는 -52 이고, 실제 글 수는 47개 라는 것입니다. 그래서 삭제가 안되는 것일까요??
$wr_num_spec= mysql_insert_id();  // 이 한 줄 추가 해 보세요. ;;

// 부모 아이디에 UPDATE
 sql_query(" update g4_write_spec_db set wr_parent = '★$wr_num_spec★' where wr_id = '$wr_id' "); // 별과별사이수정


조합쟁이(이거 저거 같다 붙여서 사용하는) 수준이라 -- ;;
넵 또 해보고!! 바로 알려드릴께요

아까랑 똑같이 되네요~그리구..
$wr_id = mysql_insert_id();
요것이;; 밑에 있는데요

처음증상이 독같이 나타났습니다.
삭제 안되는 것은 wr_id 하고 wr_parent(이게 0이거나) 안 맞으면 선택 삭제가 안 되는 것으로 알고 있습니다.
[wr_parent 도 원글,답변,댓글...시 wr_id 를 가져와서 원글에 대한 것임을 인식하는 것 @@??]

잠시 조금 더 확인 해 보고요 ㅡㅡ; 헷갈리네
다시 첨으로 돌리고
$wr_num_spec = get_next_num(g4_write_spec_db);  추가 한다음

wr_num 만 $wr_num_spec 값으로 넣어주구요

나머지는 그대로 wr_id로 나두었습니다.

일단 등록도 되고
삭제가 됩니다!!!

그런데 똑같은 경고창이 뜨네요 (글이 없다는"글이 존재하지 않습니다.
글이 삭제되었거나 이동하였을 수 있습니다.
확인"
)

그리고 너무 감사합니다. 글이 위로 올라온것 만 해도(삭제도 되고) 그런데 wr_id가 지금 글쓰는 A 게시판 wr_id값이 들어가는 거죠? 이걸.. 아 ..그런데 wr_num 하고 wr_id 하고 같은 값이 아닌듯????
어쩃든 핑핑 도는 군요!!!

일단 안지워지는 것 지우기 위해 DB에 접속해 보니까요 역시나 wr_id 하고 wr_parent하고 값이 달라버리네요 그래서 안지워진듯, 이때 wr_num 값이 wr_parent에 들어가면 안되는 거 같습니다.
왜냐하면 wr_id 는 다른값(게시판 A의 글의 wr_id)이 들어가기 때문에...
따라서 spec_db의 wr_id값을 불러와서.. 1을 증가시킨 다음 wr_id와 wr_parent에 넣어줘야 하는듯? 참고로 wr_num 값은 올바른 값이 분명 들어가긴 하는데 , wr_id 와는 상관이 없네요 그럼 wr_id 를 찾는 것만 하면? 될까요

wr_id 를 어떻게 구해오죠 ㅠ.ㅠ sql로..

음.. select wr_id from spec_db게시판 where 마지막글
이건가요? 이거에서 wr_id를 +1 하면 될까요;;;;;
이건 어떻게 ...
wr_id 하고 wr_parent 만 같으면 수정,삭제 모두 다 됩니다.
wr_id는 자동증가 이고 부모 아이디 업데이트시 wr_parent = $wr_id 요게 처리되어 둘이 같아져야 하는데 내용은 bbs/write_update.php 하고 같은데..
잘못 출발해서 작업하시는게 괜히 길어졌네요. @@;;

게시판 하나 만들어서 해 볼께요. 수준 미달이 글 보고 하려니 ;;
수준미달이라뇨!! 많은 도움이 되고 있습니다. wr_num은 확실히 알아냈고
이제 spec_db게시판의 wr_id만 불러오면 되는데요 감사합니다!!

그런데 경고문구는 다른 곳이 원인인것 같습니다.
경고 문구 날때 상태표시줄(로딩되는주소) 살펴보면 이상한 wr_id를 호출하더라구요아마 wr_id가 하나 더 증가 한듯 합니다.(글쓰기를 2번 해서)이것을 해결하면 경고문구는 없어질 것 같구..

이제 wr_id만 해결하면 될듯 합니다!!
http://sir.co.kr/bbs/board.php?bo_table=g4_qa&wr_id=138485&sca=&sfl=wr_subject%7C%7Cwr_content&stx=mysql_insert_id&sop=and
의외의 곳에서 힌트를 찾았네요!!!!!아무리 검색해도 없두만 ㅠ.ㅠ

$wr_id말고 다른 변수를 써보겠습니다~ 그리고 bbs폴더 말고 스킨의 write.update.head.skin을 써야겠네요!!
테스트 완료 잘 들어 갑니다. ;;  글 좀 더 써 볼께요. ~~
글게시할 게시판 스킨 write_update.skin.php 파일 하나 만드셔서 아래 소스 그대로 넣으신 후 게시판 부분만 확인.변경 해 보세요.  (test_board 라는 부분하고 B01, B02)

<?
if(!$w){  // 새글일 경우
$test_board="g4_write_B02"; ★

$wr_num_test = get_next_num($test_board); ★
$wr_reply = "";

    $sql_today = " insert into $test_board
                set wr_num = '$wr_num_test', ★
                    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_today);

    $wr_id_test = mysql_insert_id();

    // 부모 아이디에 UPDATE ★ 요기 아래 4군데
sql_query(" update $test_board set wr_parent = '$wr_id_test' where wr_id = '$wr_id_test' ");

// 새글 INSERT
    //sql_query(" insert into $g4[board_new_table] ( bo_table, wr_id, wr_parent, bn_datetime ) values ( '$bo_table', '$wr_id', '$wr_id', '$g4[time_ymdhis]' ) ");
    sql_query(" insert into $g4[board_new_table] ( bo_table, wr_id, wr_parent, bn_datetime, mb_id ) values ( '$test_board', '$wr_id', '$wr_id', '$g4[time_ymdhis]', '$member[mb_id]' ) ");

// 게시글 1 증가
    sql_query("update $g4[board_table] set bo_count_write = bo_count_write + 1 where bo_table = '$test_board'");
}
?>
정말 감사합니다!! 완성 했습니다!! !! 그리고 원하던 데로 bbs 수정도 안해도 되겠네요!!
다시 한번 감사하구요!  늦은 밤 아니..;; 이른 아침 까지 도와주셔서 정말 감사합니다. 나중에 돈 많이 벌면 은혜 갚을께요!!!!^^





그런데

  // 부모 아이디에 UPDATE ★ 요기 아래 4군데
sql_query(" update $test_board set wr_parent = '$wr_id_test' where wr_id = '$wr_id_test' ");

// 새글 INSERT
    //sql_query(" insert into $g4[board_new_table] ( bo_table, wr_id, wr_parent, bn_datetime ) values ( '$bo_table', '$wr_id', '$wr_id', '$g4[time_ymdhis]' ) ");
    sql_query(" insert into $g4[board_new_table] ( bo_table, wr_id, wr_parent, bn_datetime, mb_id ) values ( '$test_board', '$wr_id', '$wr_id', '$g4[time_ymdhis]', '$member[mb_id]' ) ");

// 게시글 1 증가
    sql_query("update $g4[board_table] set bo_count_write = bo_count_write + 1 where bo_table = '$test_board'");
}
?>

부분은

$board_tb = "spec_db";

  // 부모 아이디에 UPDATE ★ 요기 아래 4군데
sql_query(" update $test_board set wr_parent = '$wr_id_test' where wr_id = '$wr_id_test' ");

// 새글 INSERT
    //sql_query(" insert into $g4[board_new_table] ( bo_table, wr_id, wr_parent, bn_datetime ) values ( '$bo_table', '$wr_id', '$wr_id', '$g4[time_ymdhis]' ) ");
    sql_query(" insert into $g4[board_new_table] ( bo_table, wr_id, wr_parent, bn_datetime, mb_id ) values ( '$board_tb', '$wr_id_test', '$wr_id_test', '$g4[time_ymdhis]', '$member[mb_id]' ) ");

// 게시글 1 증가
    sql_query("update $g4[board_table] set bo_count_write = bo_count_write + 1 where bo_table = '$board_tb'");
}
?>

가 맞네요^^
진작에 해보면서 했어야 하는데 너무 멀리 돌아 왔네요. ;;
추가 되는 곳은 0 번 부터 게시되어 간혹 관리모드에서 카운트 조정 되어야 할 것 같은데.. 좀더 추가 점검 해 봐야겠습니다.

행복한 주말 보내시길.... ^^
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

// 자신만의 코드를 넣어주세요.
//네;;




if(!$w){  // 새글일 경우
if ($wr_14){  // 체크박스 체크



$wr_num_test = get_next_num(g4_write_spec_db);
$wr_reply = "";

    $sql_today = " insert into g4_write_spec_db
                set wr_num = '$wr_num_test',
                    wr_reply = '$wr_reply',
                    wr_comment = 0,
                    ca_name = '$bo_table',
                    wr_option = '$html,$secret,$mail',
                    wr_subject = '$wr_3',
                    wr_content = '$wr_3',
                    wr_link1 = '$wr_link1',
                    wr_link2 = '',
                    wr_link1_hit = 0,
                    wr_link2_hit = 0,
                    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]'";

    sql_query($sql_today);

    $wr_id_test = mysql_insert_id();

    // 부모 아이디에 UPDATE
sql_query(" update g4_write_spec_db set wr_parent = '$wr_id_test' where wr_id = '$wr_id_test' ");

// 새글 INSERT
 
  sql_query(" insert into $g4[board_new_table] ( bo_table, wr_id, wr_parent, bn_datetime, mb_id ) values ( 'spec_db', '$wr_id_test', '$wr_id_test', '$g4[time_ymdhis]', '$member[mb_id]' ) ");

// 게시글 1 증가
    sql_query("update $g4[board_table] set bo_count_write = bo_count_write + 1 where bo_table = 'spec_db'");
}
}




?>


이게 저한테 맞춘 수정본 입니다.일단 문제 없이 잘 됩니다~

참고로
체크박스 값을 읽으려면
write_update.head.skin.php 에 넣어야 합니다~(그누 기본 lib일 경우->tail불러오는 구문이 저같은 경우는 없더군요)
전체 23 |RSS
그누4 질문답변 내용 검색

회원로그인

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