전체이미지 보기에서 특정테이블 제외시키기 정보
전체이미지 보기에서 특정테이블 제외시키기
본문
원본소스 : http://www.sir.co.kr/bbs/board.php?bo_table=g4_skin&wr_id=57126
제목 : 사이트의 첨부된 모든 이미지 추출 (갤러리스킨)
중.......................
////////////////basic cf control///////////
$g4[g4_board_file] = "g4_board_file";
$one_rows = "25"; // 이미지 출력수량
$width_o = "120"; //이미지 가로값
$height_o = "100"; //이미지 세로값
$cols = "5"; // 이미지 가로갯수
$image_h = "17"; // 이미지 상하 간격
//jpg, jpeg, gif, png 파일만 검색한다.
$one_like = " bf_file LIKE '%jpg' or bf_file LIKE '%jpeg' or bf_file LIKE '%gif' or bf_file LIKE '%png' ";
$one_count_sql = " select count(*) as cnt from $g4[g4_board_file] where $one_like ";
$row = sql_fetch($one_count_sql);
$total_count = $row[cnt];
$total_page = ceil($total_count / $one_rows); // 전체 페이지 계산
if ($page == "") { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $one_rows; // 시작 열을 구함
$to_record = $from_record + $one_rows ;
$one_sql = " select * from $g4[g4_board_file] where $one_like order by bf_datetime desc limit $from_record, $one_rows";
$one_result = sql_query($one_sql);
?>
위 소스에서 특정테이블을 제외시키고자 합니다.
"img5' 테이블을 제외시킬려면... g4_board_file 디비의 bo_table 중 'img5' 에 해당되는 모든 파일을 제외시키고자 합니다.
시원한 해결책을 부탁드립니다.
댓글 전체

또는 사용자마다 해당 게시판의 읽기 권한에 따라서 출력 여부를 결정했으면 해요

아래에다가 다음을 추가합니다.
$two_like = " AND bo_table != 'img5' ";
$one_count_sql = " select count(*) as cnt from $g4[g4_board_file] where $one_like ";
여기의 맨 끝에 $two_like를 추가해줍니다.
$one_count_sql = " select count(*) as cnt from $g4[g4_board_file] where $one_like $two_like ";
첨부파일 저장하는 구조를 대강 알아두시면 좋습니다.
bf_file 은 실제로 저장된 파일의 이름이고, bf_source는 사용자가 업로드한 파일의 원래 이름, bo_table은 알고 계시는 게시판id입니다.


select bo_table from `$g4[board_table]` where bo_read_level <= '$member[mb_level]'
이 집합에 bo_table이 포함되는 조건을 걸어주려면 다음과 같이 하면 되겠죠.
$two_like = " AND bo_table IN (select bo_table from `$g4[board_table]` where bo_read_level <= '$member[mb_level]') as a ";
이 $two_like 조건문을 쿼리문에 같은 요령으로 두군데 삽입하시면 될 것 같습니다.

감사합니다만... 그대로 출력이 됩니다.
$one_count_sql = " select count(*) as cnt from $g4[g4_board_file] where $one_like AND bo_table != 'img5' ";
해결이 안되네요...

그 아래에 있는 것도 마찬가지로 수정해주세요
$one_sql = " select * from $g4[g4_board_file] where $one_like $two_like order by bf_datetime desc limit $from_record, $one_rows";

one_like, two_like 위치 바꾸어서 해결하였습니다.
$one_like = " bo_table != 'img5' ";
$two_like = " AND bf_file LIKE '%jpg' or bf_file LIKE '%jpeg' or bf_file LIKE '%gif' or bf_file LIKE '%png' ";
$one_count_sql = " select count(*) as cnt from $g4[g4_board_file] where $one_like $two_like ";
$one_sql = " select * from $g4[g4_board_file] where $one_like $two_like order by bf_datetime desc limit $from_record, $one_rows";