전체이미지 보기에서 특정테이블 제외시키기 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

전체이미지 보기에서 특정테이블 제외시키기 정보

전체이미지 보기에서 특정테이블 제외시키기

본문

원본소스 : 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' 에 해당되는 모든 파일을 제외시키고자 합니다.

시원한 해결책을 부탁드립니다.

댓글 전체

행님께서도 이문제때문에 고민하고 계시는군요...해결되시면 알려주세요..

또는 사용자마다 해당 게시판의 읽기 권한에 따라서 출력 여부를 결정했으면 해요
$one_like  = " bf_file LIKE '%jpg' or bf_file LIKE '%jpeg' or bf_file LIKE '%gif' or bf_file LIKE '%png' ";
아래에다가 다음을 추가합니다.
$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입니다.
일단은 읽기 레벨이 멤버의 레벨과 같거나 더 낮은 bo_table의 목록을 뽑아오는 쿼리문입니다.
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 조건문을 쿼리문에 같은 요령으로 두군데 삽입하시면 될 것 같습니다.
말러83님 ...
감사합니다만... 그대로 출력이 됩니다.

$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";
말러 83님 감사드립니다.
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";
전체 104 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT