확장필드 힘드네요... > 그누4 질문답변

그누4 질문답변

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

확장필드 힘드네요... 정보

확장필드 힘드네요...

첨부파일

ENTRY.zip (68.9K) 11회 다운로드 2006-11-21 21:19:00

본문

확장필드를 wr_11~wr_35까지 만들어서 사용하려고 하는데...
 
잘 되는것 같다가도 안되고 힘드네요...
 
문제가 되는것은 처음 글을 등록을 하면 wr_11부터는 저장이 안됩니다.
 
수정해서 다시 입력하면 그다음 부터는 저장이 되구요... 원인을 모르겠습니다.
 
도움좀 주세요...
  • 복사

댓글 전체

좀더 밑으로 내려가면 아래와 같은 부분이 있습니다.

    $sql = " update $write_table
                set 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',
                    mb_id = '$mb_id',
                    wr_name = '$wr_name',
                    wr_email = '$wr_email',
                    wr_homepage = '$wr_homepage',
                    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_ip
                    $sql_password
              where wr_id = '$wr[wr_id]' ";
    sql_query($sql);
$sql = " insert into $write_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);
아래와 같이 하시면 되겠습니다.

write_update.tail.skin.php

<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

//게시판 테이블
$bo_write_table = $g4['write_prefix'] . $bo_table; // 게시판 테이블 전체이름

$sql_common = " wr_11  = '$wr_11',
wr_12  = '$wr_12',
wr_13  = '$wr_13',
wr_14  = '$wr_14',
wr_15  = '$wr_15'
                ";

//글쓰기 또는 답변
if ($w == '' || $w == 'r') {
    $sql = " insert into $bo_write_table
                set $sql_common ";
    sql_query($sql);
}

//수정
else if ($w == 'u') {
    $sql2 = " update $bo_write_table
                set $sql_common where wr_id = '$wr_id' ";
    sql_query($sql2);
}
else
    alert("제대로 된 값이 넘어오지 않았습니다.");
?>
위내용을 write_update.tail.skin.php
파일로 만들어서 스킨에 올렸습니다. 근데...

insert into set wr_11 = '', wr_12 = '', wr_13 = '*** 개인정보보호를 위한 휴대폰번호 노출방지 ***', wr_14 = '', wr_15 = '', wr_16 = '', wr_17 = ' ', wr_18 = '', wr_19 = '', wr_20 = '', wr_21 = '', wr_22 = '', wr_23 = ' ', wr_24 = '', wr_25 = '', wr_26 = '', wr_27 = '', wr_28 = '', wr_29 = '', wr_30 = '', wr_31 = '', wr_32 = '', wr_33 = '', wr_34 = '', wr_35 = ''

1064 : You have an error in your SQL syntax near 'set wr_11 = '', wr_12 = '', wr_13 = '*** 개인정보보호를 위한 휴대폰번호 노출방지 ***', wr_14 = '',' at line 2

error file : /educ/bbs/write_update.php


이렇게 뜨네요...

이렇게 올렸거든요...




<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

//게시판 테이블
$bo_write_table = $g4['write_prefix'] . $bo_table; // 게시판 테이블 전체이름

$sql_common = " wr_11 = '$wr_11',
wr_12 = '$wr_12',
wr_13 = '$wr_13',
wr_14 = '$wr_14',
wr_15 = '$wr_15',
wr_16 = '$wr_16',
wr_17 = '$wr_17',
wr_18 = '$wr_18',
wr_19 = '$wr_19',
wr_20 = '$wr_20',
wr_21 = '$wr_21',
wr_22 = '$wr_22',
wr_23 = '$wr_23',
wr_24 = '$wr_24',
wr_25 = '$wr_25',
wr_26 = '$wr_26',
wr_27 = '$wr_27',
wr_28 = '$wr_28',
wr_29 = '$wr_29',
wr_30 = '$wr_30',
wr_31 = '$wr_31',
wr_32 = '$wr_32',
wr_33 = '$wr_33',
wr_34 = '$wr_34',
wr_35 = '$wr_35'
                ";

//글쓰기 또는 답변
if ($w == '' || $w == 'r') {
//입찰자 업데이트
    $sql = " insert into $g4[auction_table]
                set $sql_common ";
    sql_query($sql);
}

else if ($w == 'u') {

//수정
    $sql2 = " update $bo_write_table
                set $sql_common where wr_id = '$wr_id' ";
    sql_query($sql2);
}
else
    alert("제대로 된 값이 넘어오지 않았습니다.");
?>
역시나 안되는군요... 글 입력시 wr_11~  부터는 저장이 안됩니다.

write.update.skin.php는 이대로 해도 맞는 건가요?


<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

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


if(!$wr_comment) {  // 코멘일때는 저장하면 안됩.

    $sql = " update $write_table
                set wr_11 = '$wr_11',
wr_12 = '$wr_12',
wr_13 = '$wr_13',
wr_14 = '$wr_14',
wr_15 = '$wr_15',
wr_16 = '$wr_16',
wr_17 = '$wr_17',
wr_18 = '$wr_18',
wr_19 = '$wr_19',
wr_20 = '$wr_20',
wr_21 = '$wr_21',
wr_22 = '$wr_22',
wr_23 = '$wr_23',
wr_24 = '$wr_24',
wr_25 = '$wr_25',
wr_26 = '$wr_26',
wr_27 = '$wr_27',
wr_28 = '$wr_28',
wr_29 = '$wr_29',
wr_30 = '$wr_30',
wr_31 = '$wr_31',
wr_32 = '$wr_32',
wr_33 = '$wr_33',
wr_34 = '$wr_34',
wr_35 = '$wr_35'
where wr_id = '$wr[wr_id]' ";
    sql_query($sql);
}

?>
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

//게시판 테이블
$bo_write_table = $g4['write_prefix'] . $bo_table; // 게시판 테이블 전체이름

$sql_common = " wr_11  = '$wr_11',
wr_12  = '$wr_12',
wr_13  = '$wr_13',
wr_14  = '$wr_14',
wr_15  = '$wr_15',
wr_16  = '$wr_16',
wr_17  = '$wr_17',
wr_18  = '$wr_18',
wr_19  = '$wr_19',
wr_20  = '$wr_20',
wr_21  = '$wr_21',
wr_22  = '$wr_22',
wr_23  = '$wr_23',
wr_24  = '$wr_24',
wr_25  = '$wr_25',
wr_26  = '$wr_26',
wr_27  = '$wr_27',
wr_28  = '$wr_28',
wr_29  = '$wr_29',
wr_30  = '$wr_30',
wr_31  = '$wr_31',
wr_32  = '$wr_32',
wr_33  = '$wr_33',
wr_34  = '$wr_34',
wr_35  = '$wr_35'
                ";

//글쓰기 또는 답변
if ($w == '' || $w == 'r') {
    $sql = " insert into $bo_write_table
                set $sql_common ";
    sql_query($sql);
}

//수정
else if ($w == 'u') {
    $sql2 = " update $bo_write_table
                set $sql_common where wr_id = '$wr_id' ";
    sql_query($sql2);
}
else
    alert("제대로 된 값이 넘어오지 않았습니다.");
?>
하~~~~~~~~~~

정말 힘드군요... 역시 안되는데... 내가 뭔가 잘못한건지... 잘 모르겠네요..

좀더 해봐야 겠습니다. 근데 이렇게 하면 되는것 같기도 합니다.



<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

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

$wr_11 = "$wr_11";
$sql11 = " update $write_table set wr_11 = '$wr_11' where wr_id = '$wr_id' ";
sql_query($sql11);

$wr_12 = "$wr_12";
$sql12 = " update $write_table set wr_12 = '$wr_12' where wr_id = '$wr_id' ";
sql_query($sql12);

$wr_13 = "$wr_13";
$sql13 = " update $write_table set wr_13 = '$wr_13' where wr_id = '$wr_id' ";
sql_query($sql13);

$wr_14 = "$wr_14";
$sql14 = " update $write_table set wr_14 = '$wr_14' where wr_id = '$wr_id' ";
sql_query($sql14);

$wr_15 = "$wr_15";
$sql15 = " update $write_table set wr_15 = '$wr_15' where wr_id = '$wr_id' ";
sql_query($sql15);

$wr_16 = "$wr_16";
$sql16 = " update $write_table set wr_16 = '$wr_16' where wr_id = '$wr_id' ";
sql_query($sql16);

$wr_17 = "$wr_17";
$sql17 = " update $write_table set wr_17 = '$wr_17' where wr_id = '$wr_id' ";
sql_query($sql17);

$wr_18 = "$wr_18";
$sql18 = " update $write_table set wr_18 = '$wr_18' where wr_id = '$wr_id' ";
sql_query($sql18);

$wr_19 = "$wr_19";
$sql19 = " update $write_table set wr_19 = '$wr_19' where wr_id = '$wr_id' ";
sql_query($sql19);

$wr_20 = "$wr_20";
$sql20 = " update $write_table set wr_20 = '$wr_20' where wr_id = '$wr_id' ";
sql_query($sql20);

$wr_21 = "$wr_21";
$sql21 = " update $write_table set wr_21 = '$wr_21' where wr_id = '$wr_id' ";
sql_query($sql21);

$wr_22 = "$wr_22";
$sql22 = " update $write_table set wr_22 = '$wr_22' where wr_id = '$wr_id' ";
sql_query($sql22);

$wr_23 = "$wr_23";
$sql23 = " update $write_table set wr_23 = '$wr_23' where wr_id = '$wr_id' ";
sql_query($sql23);

$wr_24 = "$wr_24";
$sql24 = " update $write_table set wr_24 = '$wr_24' where wr_id = '$wr_id' ";
sql_query($sql24);

$wr_25 = "$wr_25";
$sql25 = " update $write_table set wr_25 = '$wr_25' where wr_id = '$wr_id' ";
sql_query($sql25);

$wr_26 = "$wr_26";
$sql26 = " update $write_table set wr_26 = '$wr_26' where wr_id = '$wr_id' ";
sql_query($sql26);

$wr_27 = "$wr_27";
$sql27 = " update $write_table set wr_27 = '$wr_27' where wr_id = '$wr_id' ";
sql_query($sql27);

$wr_28 = "$wr_28";
$sql28 = " update $write_table set wr_28 = '$wr_28' where wr_id = '$wr_id' ";
sql_query($sql28);

$wr_29 = "$wr_29";
$sql29 = " update $write_table set wr_29 = '$wr_29' where wr_id = '$wr_id' ";
sql_query($sql29);

$wr_30 = "$wr_30";
$sql30 = " update $write_table set wr_30 = '$wr_30' where wr_id = '$wr_id' ";
sql_query($sql30);

$wr_31 = "$wr_31";
$sql31 = " update $write_table set wr_31 = '$wr_31' where wr_id = '$wr_id' ";
sql_query($sql31);

$wr_32 = "$wr_32";
$sql32 = " update $write_table set wr_32 = '$wr_32' where wr_id = '$wr_id' ";
sql_query($sql32);

$wr_33 = "$wr_33";
$sql33 = " update $write_table set wr_33 = '$wr_33' where wr_id = '$wr_id' ";
sql_query($sql33);

$wr_34 = "$wr_34";
$sql34 = " update $write_table set wr_34 = '$wr_34' where wr_id = '$wr_id' ";
sql_query($sql34);

$wr_35 = "$wr_35";
$sql35 = " update $write_table set wr_35 = '$wr_35' where wr_id = '$wr_id' ";
sql_query($sql35);
?>
현재 배포중인 그누보드의 글작성시 인서트 파일의 구조상 신규글 작성시에도
이미 인서트가 되고 난후에 사용자 스킨에서 코드가 실행이 되므로 신규글, 수정글, 답변글
상관없이 전부 where wr_id = '$wr_id' 를 넘겨줘야 합니다.

즉 현재 배포중인 그누보드에서는 글쓰기시 인서트 파일에서 아래의 스킨을 불러오는
위치가 신규,수정 을 전부 완료한 후에 불러오기 때문 입니다.

스킨/write_update.skin.php 또는 write_update.tail.skin.php

<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
$sql2 = " update $write_table
 set wr_11  = '$wr_11',
 wr_12  = '$wr_12',
 wr_13  = '$wr_13',
 wr_14  = '$wr_14',
 wr_15  = '$wr_15',
 wr_16  = '$wr_16',
 wr_17  = '$wr_17',
 wr_18  = '$wr_18',
 wr_19  = '$wr_19',
 wr_20  = '$wr_20',
 wr_21  = '$wr_21',
 wr_22  = '$wr_22',
 wr_23  = '$wr_23',
 wr_24  = '$wr_24',
 wr_25  = '$wr_25',
 wr_26  = '$wr_26',
 wr_27  = '$wr_27',
 wr_28  = '$wr_28',
 wr_29  = '$wr_29',
 wr_30  = '$wr_30',
 wr_31  = '$wr_31',
 wr_32  = '$wr_32',
 wr_33  = '$wr_33',
 wr_34  = '$wr_34',
 wr_35  = '$wr_35'
 where wr_id = '$wr_id' ";
 sql_query($sql2);
?>
왜 안 되는가 잘 모르겠네요.

제 테스트 게시판에선 잘 되는뎅... ㅡ.ㅡa

http://www.morssola.com/bbs/tb.php/qq/3

게시물 패스워드 1

여분필드는 30개까지 생성한 상태입니다.
음.. 업데이트를 한번 더 주면 되겠네용.

<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

//게시판 테이블
$bo_write_table = $g4['write_prefix'] . $bo_table; // 게시판 테이블 전체이름

$sql_common = " wr_11  = '$wr_11',
wr_12  = '$wr_12',
wr_13  = '$wr_13',
wr_14  = '$wr_14',
wr_15  = '$wr_15',
wr_16  = '$wr_16',
wr_17  = '$wr_17',
wr_18  = '$wr_18',
wr_19  = '$wr_19',
wr_20  = '$wr_20',
wr_21  = '$wr_21',
wr_22  = '$wr_22',
wr_23  = '$wr_23',
wr_24  = '$wr_24',
wr_25  = '$wr_25',
wr_26  = '$wr_26',
wr_27  = '$wr_27',
wr_28  = '$wr_28',
wr_29  = '$wr_29',
wr_30  = '$wr_30'
                ";

//글쓰기, 답변, 수정
if ($w == '' || $w == 'r' || $w == 'u') {
    $sql = " update $bo_write_table
                set $sql_common where wr_id = '$wr_id' ";
    sql_query($sql);
}
else
    alert("제대로 된 값이 넘어오지 않았습니다.");
?>
신규글도 사용스킨에서 업데이트문만 넣어 주면 정상적으로 되어야 합니다.

bbs/write_update.php 내용중 새글 인서트 시에

    $sql = " insert into $write_table
                set wr_num = '$wr_num',
                    wr_reply = '$wr_reply',
  생략
                    wr_10 = '$wr_10' ";
    sql_query($sql);

    $wr_id = mysql_insert_id();

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

소스에서 보시면 알겠지만 인서트시 $wr_id 를 생성한후
방금 생성한 wr_id 글에 다시 wr_parent = '$wr_id' 를 업데이트를 시켜 줍니다.
글 등록은 bbs/write_update.php 되므로...

write.update.skin.php 에서 여분필드를 한번 더 업데이트.

으흐흐... 무심코 넘어갈뻔 했네용.

자자자 출석부가 기다리고 있습니다!
© SIRSOFT
현재 페이지 제일 처음으로