들레아빠

여분필드 확장 후 write_update.skin.php

· 2023-04-03 (월) 21:16:11 · 5895 · 36

[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필요)

첨부파일

wr-add.zip (6.1 KB) 10회 2023-09-18 17:26
|

댓글 36개

2023-04-03 (월) 21:39:58
코드의 기능을 설명해 주시면 감사하겠습니다.^^;
@브러운아이 네, 게시판 여분필드 확장(추가) 후 bbs 파일은 수정하지 않은 상태에서 게시판의 폴더에 위 내용을 적용하면 여분필드 수와 관계없이 업데이트 저장이 알아서 된다는 내용 입니다.
2023-04-05 (수) 12:36:06
@들레아빠 친절한 답변 감사드립니다.^^
$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',
~
~
where wr_id = '$wr_id' ";
sql_query($sql);
이 코드를 대체 합니다.
아고고..
무지 감사합니다.
꼭 필요했던 팁입니다.
@오빠야 댓글 감사 합니다.
여분필드의 갯수가 다양 할 때를 생각하고 만들었습니다.
오! 비슷한거 써먹어야되는데~ 잘됐네요
@리오닥터 if문 윗부분만 write.skin.php에 넣으면 $rr이 여분필드 수가 됩니다.
감사 합니다.
오~~대단하십니다.
감사합니다.
@써맨 댓글 감사 합니다. 대단 할 것 까진 아닙니다.
2023-04-04 (화) 09:09:36
감사합니다. ^^
@민트다이어리 댓글 감사 드립니다.
좋은 팁 감사합니다.
@푸른산타 추천 감사 합니다.
이런 신박한 방법을 알려주시니 감사합니다
@미키손 칭찬 감사 합니다.
2023-04-04 (화) 17:49:28
오.. 감사합니다. 당장 적용해보겠습니다.
@바케스터 네, 감사 합니다.
감사합니다.
@풍운 감사 합니다.
좋은 팁 감사합니다.
@thedream 감사 합니다.
좋은 팁 감사합니다
@단동 네 제가 감사 합니다.
테스트해보니 여분필드에 데이터 잘 들어갑니다
감사합니다
@풍운 테스트까지 해 주세서 더욱 감사 합니다.
2023-04-05 (수) 21:52:06
어떤 로직인지 한눈에 들어오네요.
가령 15 다음에 16이 없고 17로 건너뛰면 15까지만 저장이 되겠네요.
수고하셨어요.
@비타주리 고수님이 여기까지 오시니 영광입니다.
여분필드가 건너뛰어 있는 것은 생각하지 못하였습니다.
@비타주리님께서 코드를 보완하여 주시면 감사 하겠습니다.
여분필드를 일부러 띄엄 띄엄 만드는 것은 아닌데 추후에 추가나 수정시에 까먹고 건너 뛰는 경우가 있습니다. 두번째 코드로 변경하면 연속해서 있거나 띄엄띄엄 있거나 모두 사용이 가능 한자요? 감사합니다
@풍운 네, 추가로 올린 내용이 띄엄띄엄을 위해 만들었는데 테스트는 많이 못 하였습니다.
@들레아빠 네 저도 나중에 테스트해보겠습니다. 감사합니다
@풍운 네 감사 합니다.
2023-04-15 (토) 15:32:28
멋진 팁 고맙습니다.
감사합니다
정말 감사합니다.

와미쳤다. ㅋㅋ 여분필드 추가안되어서 애먹고있었는데 답변달아주셔서 왔습니다. 잘쓰겠습니다~!! 채택했습니다~!!

댓글을 작성하시려면 로그인이 필요합니다.

그누보드5 팁자료실

2,788건
+
제목 글쓴이 날짜 조회
23-05-08 조회 5,052
23-05-04 조회 8,226
23-04-26 조회 4,800
23-04-24 조회 5,897
23-04-22 조회 4,760
23-04-22 조회 4,141
23-04-17 조회 5,151
23-04-16 조회 4,834
23-04-16 조회 4,723
23-04-15 조회 4,782
23-04-15 조회 6,893
23-04-14 조회 5,715
23-04-14 조회 4,818
23-04-13 조회 4,381
23-04-12 조회 4,866
23-04-11 조회 4,715
23-04-11 조회 4,173
23-04-09 조회 4,061
23-04-06 조회 5,156
23-04-05 조회 4,297
23-04-05 조회 3,899
23-04-03 조회 5,896
23-03-29 조회 3,844
23-03-29 조회 4,447
23-03-29 조회 4,492
23-03-29 조회 4,022
23-03-24 조회 3,901
23-03-23 조회 5,177
23-03-23 조회 4,683
23-03-16 조회 4,472