20'C 흐림
서울 강남구
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
include_once($_SERVER[DOCUMENT_ROOT]."/common.php");
null_delete('free');//게시판 이름
function null_delete($target_board){
$sql = "SELECT wr_id FROM g5_board_file WHERE bo_table = '$target_board' AND length(bf_source)=0;";
$result = sql_query($sql);
$row = sql_fetch_array($result);
//wr_id가져오기
$current_wr_id = $row['wr_id'];
//빈셀 삭제
sql_query("DELETE FROM g5_board_file WHERE length(bf_source) = 0 AND wr_id='$current_wr_id'");
//현재 bf_no 가져오기
$cnt_sql = "SELECT bf_no FROM g5_board_file WHERE bo_table = '$target_board' AND wr_id='$current_wr_id' AND length(bf_source)>0;";
$cnt_result = sql_query($cnt_sql);
$cnt = sql_num_rows($cnt_result);
//0부터 순차적으로 값 변경 업데이트
$i = 0;
while ($cnt_row = sql_fetch_array($cnt_result)) {
$temp_bf = $cnt_row['bf_no'];
sql_query("UPDATE g5_board_file SET bf_no='$i' WHERE wr_id='$current_wr_id' AND bf_no='$temp_bf';");
$i++;
}
}
?>
위에 처럼 첨부파일 중간에 첨부를 하거나 중간에 파일을 삭제하면 수정페이지에서 듬성듬성 보입니다.
첨부 파일이 있는 순서대로 나오고, 없는 순서대로 나오게 하는 함수 입니다.
데이터베이스를 보니까 삭제를 눌러도 파일명만 삭제가 되고 bf_no가 그대로다 보니 구멍난 대로 수정페이지에서 보입니다. 그래서 파일명 없는 걸 삭제하고, bf_no를 0부터 순차적으로 갯수만큼 업테이트 하는 쿼리 실행하는 함수 입니다.
저 같은 경우는 필요한 게시판 스킨에 write_update.skin.php 파일에 넣어 놓았습니다. 수정할 때 마다 실행 되도록...