여분필드 확장 후 write_update.skin.php
[code]
<?php
if (!defined("_GNUBOARD_")) exit;
$sql = "SELECT bo_table, bo_subject FROM {$g5['board_table']} ORDER BY gr_id, bo_table";
$result = sql_query($sql);
$query = "SHOW COLUMNS FROM " . G5_TABLE_PREFIX . "write_{$bo_table} LIKE 'wr_%'";
$result2 = sql_query($query);
$max_column_num = 0;
$max_column_name = '';
while ($column = sql_fetch_array($result2)) {
$column_name = $column['Field'];
$column_num = preg_replace('/[^0-9]/', '', $column_name);
if ($column_num > $max_column_num) {
$max_column_num = $column_num;
$max_column_name = $column_name;
}
}
$wr_last_num = explode("wr_", $max_column_name)[1];
while ($row = sql_fetch_array($result)) {
$extra_fields = [];
for ($k = 11; $k <= $wr_last_num; $k++) {
$qq = sql_fetch("SHOW COLUMNS FROM " . G5_TABLE_PREFIX . "write_{$row['bo_table']} LIKE 'wr_{$k}'");
if ($qq) {
$extra_fields[] = $k;
}
}
if (count($extra_fields) > 0) {
$columns = "";
foreach ($extra_fields as $i) {
if (isset(${'wr_'.$i})) {
$columns .= "wr_$i = '${'wr_'.$i}', ";
}
}
$columns = rtrim($columns, ', ');
if (!empty($columns)) {
$sql = "UPDATE $write_table SET $columns WHERE wr_id = '$wr_id'";
sql_query($sql);
}
}
}
[/code]
사용하는 게시판에 write_update.skin.php를 위 내용으로 넣으세요.
여분필드 숫자와 크게 관계가 없을 것으로 기대하며 . . .
* 첨부파일3은 여분필드 추가/삭제 파일입니다. 아무곳에나 넣고 불러오면 됩니다.(_common.php필요)
첨부파일
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기
댓글 36개
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',
~
~
where wr_id = '$wr_id' ";
sql_query($sql);
이 코드를 대체 합니다.
무지 감사합니다.
꼭 필요했던 팁입니다.
여분필드의 갯수가 다양 할 때를 생각하고 만들었습니다.
감사 합니다.
감사합니다.
감사합니다
가령 15 다음에 16이 없고 17로 건너뛰면 15까지만 저장이 되겠네요.
수고하셨어요.
여분필드가 건너뛰어 있는 것은 생각하지 못하였습니다.
@비타주리님께서 코드를 보완하여 주시면 감사 하겠습니다.
와미쳤다. ㅋㅋ 여분필드 추가안되어서 애먹고있었는데 답변달아주셔서 왔습니다. 잘쓰겠습니다~!! 채택했습니다~!!