wr_ 여분필드 추가
본문
안녕하세요, phpmyadmin 을 통해서가 아닌 그냥 bbs등 파일 수정하여 여분필드 추가하는 방법이 있을까요?
wr_15까지만 추가하려 합니다!
분명 예전에 했을땐 된 것 같았는데.. 일단 추가 및 변경한 내용은
//bbs - write.php
if ($w == 'u' || $w == 'r') {
if ($write['wr_id']) {
// 가변 변수로 $wr_1 .. $wr_10 까지 만든다.
for ($i=1; $i<=15; $i++) {
$vvar = "wr_".$i;
$$vvar = $write['wr_'.$i];
}
} else {
alert("글이 존재하지 않습니다.\\n삭제되었거나 이동된 경우입니다.", G5_URL);
}
} else if ($w == '') { // 게시글 입력시에도 $wr_1 ~ $wr_10 변수 사용시 오류 나오지 않도록 가변변수 생성 (다온테마님,210806)
for ($i=1; $i<=15; $i++) {
$vvar = "wr_".$i;
$$vvar = '';
}
}
//bbs - write_update.php
$sql = " insert into $write_table
set wr_num = " . ($w == 'r' ? "'$wr_num'" : "(SELECT IFNULL(MIN(wr_num) - 1, -1) FROM $write_table as sq) ") . ",
wr_reply = '$wr_reply',
wr_comment = 0,
ca_name = '$ca_name',
wr_option = '$wr_option',
wr_subject = '$wr_subject',
wr_content = '$wr_content',
wr_seo_title = '$wr_seo_title',
wr_link1 = '$wr_link1',
wr_link2 = '$wr_link2',
wr_link1_hit = 0,
wr_link2_hit = 0,
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 = '".G5_TIME_YMDHIS."',
wr_last = '".G5_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',
wr_11 = '$wr_11',
wr_12 = '$wr_12',
wr_13 = '$wr_13',
wr_14 = '$wr_14',
wr_15 = '$wr_15' ";
sql_query($sql);
$sql_ip = '';
if (!$is_admin)
$sql_ip = " , wr_ip = '{$_SERVER['REMOTE_ADDR']}' ";
$sql = " update {$write_table}
set ca_name = '{$ca_name}',
wr_option = '{$wr_option}',
wr_subject = '{$wr_subject}',
wr_content = '{$wr_content}',
wr_seo_title = '$wr_seo_title',
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}',
wr_11= '{$wr_11}',
wr_12= '{$wr_12}',
wr_13= '{$wr_13}',
wr_14= '{$wr_14}',
wr_15= '{$wr_15}'
{$sql_ip}
{$sql_password}
where wr_id = '{$wr['wr_id']}' ";
sql_query($sql);
그리고 특정 게시판 스킨에
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
$wr_5 = implode(' ', $_POST['check1']);
sql_query(" update $write_table set
wr_5 = '$wr_5',
wr_7 = '$wr_7',
wr_8 = '$wr_8',
wr_9 = '$wr_9',
wr_10 = '$wr_10',
wr_11 = '$wr_11',
wr_12 = '$wr_12',
wr_13 = '$wr_13',
wr_14 = '$wr_14',
wr_15 = '$wr_15'
where wr_id = '$wr_id' ");
?>
이런식으로 추가하였는데, 일단 여분필드 추가도 되지 않을 뿐더러 글을 새로 작성하면 그 글이 보이지 않습니다 ㅠㅠ(게시판 글 카운팅은 또 됩니다..)
phpmyadmin 으로 추가했더니 또 게시판 카테고리 적용이 안되서.. 껄껄... 예전에 성공했던 방식대로 그냥 bbs만 건들였는데 안되네용.. 똥손인 디블리셔가 문의드립니다.
참고로 서버환경은 UTF-8 (PHP7.3, mariadb-10.x) 로, 카페24통해서 그누보드 설치했습니다.
뭐든 답변주시면.. 매우 감사하겠습니다. .ㅠㅠ
!-->!-->!-->!-->답변 3
이거 쓰세요...
phpmyadmin 즉 데이터베이스에 추가하지 않으면 무슨짓을 해도 안됩니다.
쉽게 말해, 집에 여유 공간을 만들어두지 않고, 거기에 무언갈 넣을려고 해도 들어가지 않는 것과 같습니다.
파일 상단에서
원하는 테이블의 wr_15 존재 여부를 판단하고,
없으면 wr_11~wr_15 가 없다고 생각하고
ALTER TABLE g5_write_free
ADD COLUMN `wr_11` VARCHAR(255) NOT NULL AFTER `wr_10`;
이런식으로 add column 쿼리를 php 에서 실행해서 컬럼 생성해줄수 있어요
매번 실행되지않도록 wr_15 컬럼 유무를 확인후에 실행해야 ,
이미 wr_15 가 생성 된 후에는 따로 쿼리를 실행 안할수 있어요
그누보드 최초 설치할때 DB에 테이블이 없지만 php 에서 테이블 구조 잡아주는 방식하고
비슷하게요
wr_11~15 여분 필드 생성이 제대로 되어 있는지 확인해 보세요