이미 생성된 게시판에서 필드 추가하는 방법 문의 > 그누4 질문답변

그누4 질문답변

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

이미 생성된 게시판에서 필드 추가하는 방법 문의 정보

질문 이미 생성된 게시판에서 필드 추가하는 방법 문의

본문

흐~*
게시물 업데이트(수정일)를 체크하기 위해 포에버가 안정되기도 전에 '생쇼를 벌이고 있습니다!'
부질없는 짓인가 싶기도 하지만, 전체적인 틀을 볼때 그다지 비중있는 부분이 아니라서,
차후에라도 큰 변화는 없을 거라 여기며 도전해 보고 있습니다.
 
3.xx버젼대에서 팁란에 올라와 있는 자료를 포에버에 적용시키기 위해 하단의 링크 게시물을
참조했으나 아직까지 정상적인 적용방법을 찾지 못했습니다.
물론 sql을 직접 제어한다면야 문제가 없겠지만,
전체 테이블에 대해서 자동으로 생성시키기 위해서 벽에 부딪쳤네요.

[관련링크]
http://sir.co.kr/?doc=bbs/gnuboard.php&bo_table=tiptech&wr_id=3084&sselect=wr_subject&stext=필드%20추가&soperator=1&srch_rows=10&srch_comment=1&srch_days=0


//해당 소스코드 내용 시작
############### 이미 생성된 모든 게시판에 추가확장필드 업데이트
$ext_field = " select bo_table from $cfg[table_board] ";
$result = sql_query($ext_field);
for ($i=0; $row=mysql_fetch_array($result); $i++) {

  $ext_field_query =  " ALTER TABLE {$cfg[write_table_prefix]}{$row[bo_table]}
ADD wr_file3 varchar(255) NOT NULL default '' AFTER wr_file2,
";
$result1 = mysql_query($ext_field_query);
}

for ($i=0; $i<count($ext_field_query); $i++) {
  $result1 = @mysql_query($ext_field_query) or mysql_error();
}

//해당 소스코드 내용 끝


//적용시키려는 소스 내용 시작
$ext_field = " select bo_table from $g4[board_table] ";
$result = mysql_query($ext_field);
for ($i=0; $row=mysql_fetch_array($result); $i++) {
  $ext_field_query =  " ALTER TABLE {$g4[write_prefix]}{$row[bo_table]} ADD `wr_update_datetime` DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL AFTER `wr_datetime`
      ";
      $result1 = mysql_query($ext_field_query);
    }
for ($i=0; $i<count($ext_field_query); $i++) {
    $result1 = @mysql_query($ext_field_query) or mysql_error();
  }
//적용시키려는 소스 내용 끝

댓글 전체

원래는 게시물 수정일자를 게시물 view화면에 남기기 위해서 업데이트 필드를 추가했습니다만,
차후 수정된 게시물만 최신글(new.php)에 구현하고자 하는 의도로 필드를 추가하게 되었습니다.

뭐 현재의 방식을 적용한다면야 list.skin.php -> 게시물 선택 -> 수정 -> 완료 의 과정의 거친다면,
무조건 게시물 업데이트 시간이 적용됩니다만...

수정된 게시물만 최신글에 구현하려는 의도가 없이,
단순히 해당 게시물의 최종 수정(업데이트) 시간만을 체크하고,
view화면에서 구현하려면 굳이 필드를 추가할 필요는 없습니다.
해당 게시물이 신규작성인가(w == ''), 아니면 수정작업(w == 'u') 인가의 조건에 따라서
view.skin.php파일의 적당한 위치에 현재시각(서버시각)을 찍어주기만 하면 되니까요.
<?
############### 이미 생성된 모든 게시판에 추가확장필드 업데이트
$g4_path = ".";
//include"config.php";//5라인의 config.php보다 먼저 기재되면 오류 발생
include_once ("$g4_path/common.php"); //정상구현
include"config.php";
//include "$g4_path/config.php"; //활성화 되면 오류 발생
//include_once"config.php";//정상 구현
//include_once"./config.php";//정상 구현
//$g4[table_prefix]        = "g4_"; // 테이블명 접두사
//$g4[write_prefix]        = $g4[table_prefix] . "write_"; // 게시판 테이블명 접두사
//$g4[board_table]        = $g4[table_prefix] . "board";        // 게시판 설정 테이블

$ext_field = " select bo_table from $g4[board_table] ";
$result = sql_query($ext_field);
for ($i=0; $row=mysql_fetch_array($result); $i++) {
  $ext_field_query =  " ALTER TABLE {$g4[write_prefix]}{$row[bo_table]} ADD `wr_update_datetime` DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL AFTER `wr_datetime`
      ";
      $result1 = mysql_query($ext_field_query);
    }
for ($i=0; $i<count($ext_field_query); $i++) {
    $result1 = @mysql_query($ext_field_query) or mysql_error();
  }
?>

해결 되었습니다.
까만도둑님 감사합니다.
흐~*
config.php파일의 기재 위치에 따라서도 오류가 발생하는군요.
>> 오류 알림창 => 잘못된 방법으로 변수가 정의되었습니다.

이건 해당파일 상단에 아래 내용을 추가해 보세요.

<?
$g4_path = "..";
include_once ("$g4_path/common.php");
include_once("$g4[path]/head.sub.php");
include_once("$g4[path]/head.php");
?>
오류 알림창 => 잘못된 방법으로 변수가 정의되었습니다.

에구... 제가 보기에는 특별히 변수 지정하는 부분에 문제가 없어(?!) 보이는데...
변수가 잘못 정의되었다고 알림창이 뜨네요.

1. 게시판 목록을 기억하는 테이블에서 게시판 아이디(테이블명) 검색
=> $g4[board_table] => g4_board

2. 결과값을 변수에 저장

3. for문으로 검색된 테이블 수 만큼 돌리기(필드 추가하기)

4. 조건 판별 및 오류출력

커~ 진도(?!)가 안나갑니다. 흐미~~~
혹시나 하는 마음에 몇자 적어봅니다.

3.**버전의 각종 팁들을 g4로 변환작업을 하다 보니 mysql이란 단어는 sql로 적용을 해야 가능하더군요.
뭔지 모르지만 두분 상당히 어려운 대화를 하셨군요........
에구......bb는 여기 질답게시판에서 글읽어면서 열심히 공부하고 있습니다....^^;
그누3에서도 업글 못따라가다 결국 3.2버젼에서 손놔 버렸는데 지포는 끝까지 따라갈 수 있으려는지...휴우~~
전체 19 |RSS
그누4 질문답변 내용 검색

회원로그인

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