테이블을 일괄적으로 확장하는 방법이 궁금합니다. 정보
테이블을 일괄적으로 확장하는 방법이 궁금합니다.
본문
초보 수준으로 뚝딱뚝딱해서
스킨게시판에 <비티웍스>라는 타이틀관리 스킨을 올렸는데,
여분필드 확장에서 곤란을 겪는 분들이 많습니다.
활용팁란에서 카이루님이 올려주신 팁을 보았는데요.
http://sir.co.kr/bbs/tb.php/g4_tiptech/5290/b2577305a77cf979dafeab023bef1415
sql_fetch(" alter table g4_write_테이블명 add wr_11 text ");
sql_fetch(" alter table g4_write_테이블명 add wr_12 text ");
sql_fetch(" alter table g4_write_테이블명 add wr_13 text ");
sql_fetch(" alter table g4_write_테이블명 add wr_14 text ");
sql_fetch(" alter table g4_write_테이블명 add wr_15 text ");
sql_fetch(" alter table g4_write_테이블명 add wr_16 text ");
sql_fetch(" alter table g4_write_테이블명 add wr_17 text ");
sql_fetch(" alter table g4_write_테이블명 add wr_18 text ");
sql_fetch(" alter table g4_write_테이블명 add wr_19 text ");
sql_fetch(" alter table g4_write_테이블명 add wr_20 text ");
개별 테이블에서 여분필드를 확장하는 방식입니다.
이것을
g4_write_ 접두사가 있는 모든 테이블에서 일괄적으로 확장하려면 어떻게 명령해 주어야 할까요?
여분필드에 대한 이해부족으로 스킨을 만들었으니,
wr_1~wr_10 이후에 일괄적으로 여분필드 추가가 필요하신 분들에게 곤란을 겪게 만들었네요.
g4_write_ 테이블들의 여분필드를 일괄적으로 wr_1~wr_20까지 확장하고 나서
board_form_update.php를 간단히 손볼 예정입니다.
$sql_common 에서 bo_{$i}_subj, bo_{$i} 자리를 20까지 채우고,
bo_1_subj = '$_POST[bo_1_subj]',
~ 중간생략
bo_20_subj = '$_POST[bo_20_subj]',
bo_1 = '$_POST[bo_1]',
~ 중간생략
bo_20 = '$_POST[bo_20]' ";
여분필드 부분에서는
for ($i=1; $i<=10; $i++) {
↓
for ($i=1; $i<=20; $i++) {
이렇게 변경하면 업데이트에 반영이 되겠지요?
스킨게시판에 <비티웍스>라는 타이틀관리 스킨을 올렸는데,
여분필드 확장에서 곤란을 겪는 분들이 많습니다.
활용팁란에서 카이루님이 올려주신 팁을 보았는데요.
http://sir.co.kr/bbs/tb.php/g4_tiptech/5290/b2577305a77cf979dafeab023bef1415
sql_fetch(" alter table g4_write_테이블명 add wr_11 text ");
sql_fetch(" alter table g4_write_테이블명 add wr_12 text ");
sql_fetch(" alter table g4_write_테이블명 add wr_13 text ");
sql_fetch(" alter table g4_write_테이블명 add wr_14 text ");
sql_fetch(" alter table g4_write_테이블명 add wr_15 text ");
sql_fetch(" alter table g4_write_테이블명 add wr_16 text ");
sql_fetch(" alter table g4_write_테이블명 add wr_17 text ");
sql_fetch(" alter table g4_write_테이블명 add wr_18 text ");
sql_fetch(" alter table g4_write_테이블명 add wr_19 text ");
sql_fetch(" alter table g4_write_테이블명 add wr_20 text ");
개별 테이블에서 여분필드를 확장하는 방식입니다.
이것을
g4_write_ 접두사가 있는 모든 테이블에서 일괄적으로 확장하려면 어떻게 명령해 주어야 할까요?
여분필드에 대한 이해부족으로 스킨을 만들었으니,
wr_1~wr_10 이후에 일괄적으로 여분필드 추가가 필요하신 분들에게 곤란을 겪게 만들었네요.
g4_write_ 테이블들의 여분필드를 일괄적으로 wr_1~wr_20까지 확장하고 나서
board_form_update.php를 간단히 손볼 예정입니다.
$sql_common 에서 bo_{$i}_subj, bo_{$i} 자리를 20까지 채우고,
bo_1_subj = '$_POST[bo_1_subj]',
~ 중간생략
bo_20_subj = '$_POST[bo_20_subj]',
bo_1 = '$_POST[bo_1]',
~ 중간생략
bo_20 = '$_POST[bo_20]' ";
여분필드 부분에서는
for ($i=1; $i<=10; $i++) {
↓
for ($i=1; $i<=20; $i++) {
이렇게 변경하면 업데이트에 반영이 되겠지요?
추천
0
0
댓글 5개

스킨에 추가하시면 됩니다.
write_update.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',
wr_16 = '$wr_16',
wr_17 = '$wr_17',
wr_18 = '$wr_18',
wr_19 = '$wr_19',
wr_20 = '$wr_20'
";
//글쓰기, 답변, 수정
if ($w == '' || $w == 'r' || $w == 'u') {
$sql = " update $bo_write_table
set $sql_common where wr_id = '$wr_id' ";
sql_query($sql);
}
else
alert("제대로 된 값이 넘어오지 않았습니다.");
?>
write_update.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',
wr_16 = '$wr_16',
wr_17 = '$wr_17',
wr_18 = '$wr_18',
wr_19 = '$wr_19',
wr_20 = '$wr_20'
";
//글쓰기, 답변, 수정
if ($w == '' || $w == 'r' || $w == 'u') {
$sql = " update $bo_write_table
set $sql_common where wr_id = '$wr_id' ";
sql_query($sql);
}
else
alert("제대로 된 값이 넘어오지 않았습니다.");
?>

연후하은아빠님 새해 복 많이 받으십시오.^^
아, 그런데 제가 잘 몰라서...
adm/board_form.php(게시판 수정폼) 에서 입력한 값은 board_form_update.php를 통해 업데이트되는 것이 아닌지요?
사실 게시판 글쓰기를 업데이트하는 것이 아니라,
bbs/board_head.php를 업데이트해야 하는 것이라서요.
(위에 말씀드린 비티웍스라는 것이 제가 만든 보드 타이틀 관리툴입니다.)
http://sir.co.kr/bbs/tb.php/g4_skin/100485/0440491576ce2bb35f7dbf07f6633137
각 게시판 여분필드에 입력한 값을 활용해서 게시판 "타이틀"이 변경되게 만든 툴입니다.
말씀하신 대로, write_update.skin.php를 수정해서 사용해도 같은 결과를 얻을 수 있을까요?
워낙에 초보수준이고 인터넷 계통의 직종이 아닌,
단순히 개인적으로 홈페이지를 토닥거리는 수준이라 모르는 것 투성이입니다.
아, 그런데 제가 잘 몰라서...
adm/board_form.php(게시판 수정폼) 에서 입력한 값은 board_form_update.php를 통해 업데이트되는 것이 아닌지요?
사실 게시판 글쓰기를 업데이트하는 것이 아니라,
bbs/board_head.php를 업데이트해야 하는 것이라서요.
(위에 말씀드린 비티웍스라는 것이 제가 만든 보드 타이틀 관리툴입니다.)
http://sir.co.kr/bbs/tb.php/g4_skin/100485/0440491576ce2bb35f7dbf07f6633137
각 게시판 여분필드에 입력한 값을 활용해서 게시판 "타이틀"이 변경되게 만든 툴입니다.
말씀하신 대로, write_update.skin.php를 수정해서 사용해도 같은 결과를 얻을 수 있을까요?
워낙에 초보수준이고 인터넷 계통의 직종이 아닌,
단순히 개인적으로 홈페이지를 토닥거리는 수준이라 모르는 것 투성이입니다.

아! 해결했습니다.
위 스킨을 업데이트하기 위해서는 g4_board 테이블의 여분필드를 확장해줘야 하는 문제였습니다.
g4_board 테이블의 여분필드를 20개까지 확장하고
board_form_update.php를 수정하면 되는 문제였습니다.
관심 가지고 살펴주신 연후하은아빠님께 감사드립니다. ^^
위 스킨을 업데이트하기 위해서는 g4_board 테이블의 여분필드를 확장해줘야 하는 문제였습니다.
g4_board 테이블의 여분필드를 20개까지 확장하고
board_form_update.php를 수정하면 되는 문제였습니다.
관심 가지고 살펴주신 연후하은아빠님께 감사드립니다. ^^

http://freeimage.kr/bbs/?bd=tip_gnu&wr_id=156 여기를 보시면 제가 같은 문제로 필드가 없을때 추가하는 방법을 올려둔게 있습니다. 핵심은
$row = sql_query($sql,false);
이런식으로 sql 쿼리를 한다음 오류중 필드가 없다고 나오면 다음 방식을 해당되는 필드를 추가하는 방식입니다.
if (strstr(mysql_error(),"Unknown column 'a.bo_table' in 'on clause'")) {
sql_query("ALTER TABLE $g4[popular_table] ADD `bo_table` VARCHAR(25) NOT NULL",false);
}
뭐 bo_table 대신에 bo_11 bo_11_subj 라고 생각하시면되겠지요.^^
$row = sql_query($sql,false);
이런식으로 sql 쿼리를 한다음 오류중 필드가 없다고 나오면 다음 방식을 해당되는 필드를 추가하는 방식입니다.
if (strstr(mysql_error(),"Unknown column 'a.bo_table' in 'on clause'")) {
sql_query("ALTER TABLE $g4[popular_table] ADD `bo_table` VARCHAR(25) NOT NULL",false);
}
뭐 bo_table 대신에 bo_11 bo_11_subj 라고 생각하시면되겠지요.^^

헉! 저런 방법도 있었군요.
한 문제를 고민하면서 여러가지를 배우게 됩니다.
로빈아빠님 감사합니다.^^
한 문제를 고민하면서 여러가지를 배우게 됩니다.
로빈아빠님 감사합니다.^^