여분필드(체크박스)로 체크된 게시물만 보이게 하기2

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
여분필드(체크박스)로 체크된 게시물만 보이게 하기2

QA

여분필드(체크박스)로 체크된 게시물만 보이게 하기2

본문

카테고리를 사용하는 게시판에

 

여분필드 wr_2 를 공개여부 체크박스로 만들어서

 

체크된 게시물은 누구나가 다 볼 수 있고,

 

체크안된 게시물은 관리자만 볼 수 있는 기능을 만들었습니다.

 

그런데 해당 카테고리로 이동시 페이징은 정상으로 작동하는데

 

전체 카테고리로 가면($sca, $stx 의 값 없이 $bo_table 로만 이동시) 페이징이 전부 노출 됩니다...;; 게시물은 숨겨놔서 없다고 뜨는 상황입니다.

 

오전에 남긴 글의 답변을 토대로 추가를 해줬는데....

 

https://sir.kr/qa/287978

 

/bbs/list.php 추가 내용

 

추가1.


// $sql_search_add 20190124 추가
$sql_search_add = '';
if ( $bo_table === 'portfolio' && !$is_admin ){
    $sql_search_add .= " and wr_2 != '' ";
}

 

수정1.


// 분류 선택 또는 검색어가 있다면
$stx = trim($stx);
if( $sca || $stx ) { 
~~~~~~~~~~~~~~~~
    // 변경후
    $sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM {$write_table} WHERE {$sql_search} {$sql_search_add} "; // {$sql_search_add} 20190124 추가
 
} else {
    $sql_search = "";
    $total_count = $board['bo_count_write']; // 이거도 같이 바꿔줘야 할거 같은데...ㅠㅠㅠ
}

 

수정2.


if( $sst ) {
    $sql_order = " order by {$sst} {$sod} ";
}
 
if ($sca || $stx) {
    // 변경후
    $sql = " select distinct wr_parent from {$write_table} where {$sql_search} {$sql_search_add} {$sql_order} limit {$from_record}, $page_rows "; // {$sql_search_add} 20190124 추가
} else {
    $sql = " select * from {$write_table} where wr_is_comment = 0 {$sql_search_add} "; // {$sql_search_add} 20190124 추가
    if(!empty($notice_array))
        $sql .= " and wr_id not in (".implode(', ', $notice_array).") ";
    $sql .= " {$sql_order} limit {$from_record}, $page_rows ";
}

 

 

이렇게 수정한 상태인데...

 

수정1. 부분에서 $total_count = $board['bo_count_write']; 이 부분도

 

분기를 태워서 

 

if( $bo_table === 'portfolio' ) {

    wr_2가 체크된 게시물의 갯수를 $total_count 에 대입

} else {

    $total_count = $board['bo_count_write'];

}

 

이렇게 해야할거 같은데... 빨간 글씨 부분을 어떻게 갯수를 구해오는지 알 수 있을까요...??ㅠㅠㅠㅠ

이 질문에 댓글 쓰기 :

답변 2

$sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM `g5_write_portfolio` WHERE  wr_2 <> '' ";
$row = sql_fetch($sql);
$total_count = $row['cnt'];

아?! 죄송합니다!!

잘됩니다...ㅠㅠㅠ

$sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM `g5_write_portfolio` WHERE  wr_2 <> '' ";

이렇게 알려주셨는데... 나름 기존에 있는 방식대로 해보려고 아래처럼 했더니 안되는거였어요...

$sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM {$write_table} WHERE {$sql_search_add} ";

알려주신대로 해보지도 않고... 죄송합니다!ㅠㅠㅠ 감사드립니다!!

아 제가 답변을 못봤네요..

 


if( $sca || $stx || $bo_table == 'portfolio') { 

 

이렇게 바꿔보시겠어요?

테스트 해보고 댓글 다시 답니다..
제가 정신을 못차리고 답변을 달고 있었네요.


$stx = trim($stx);
if ($sca || $stx) {
    $sql_search = get_sql_search($sca, $sfl, $stx, $sop);

    // 가장 작은 번호를 얻어서 변수에 저장 (하단의 페이징에서 사용)
    $sql = " select MIN(wr_num) as min_wr_num from {$write_table} ";
    $row = sql_fetch($sql);
    $min_spt = (int)$row['min_wr_num'];

    if (!$spt) $spt = $min_spt;

    $sql_search .= " and (wr_num between {$spt} and ({$spt} + {$config['cf_search_part']})) ";

    // 원글만 얻는다. (코멘트의 내용도 검색하기 위함)
    // 라엘님 제안 코드로 대체 http://sir.kr/g5_bug/2922
    $sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM {$write_table} WHERE {$sql_search} {$sql_search_add}";
    $row = sql_fetch($sql);
    $total_count = $row['cnt'];
	echo $sql;
    /*
    $sql = " select distinct wr_parent from {$write_table} where {$sql_search} ";
    $result = sql_query($sql);
    $total_count = sql_num_rows($result);
    */
} else {
	if ($bo_table=='work'){
		$sql_search = " wr_is_comment = 0 ";
		$sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM {$write_table} WHERE {$sql_search} {$sql_search_add}";
		$row = sql_fetch($sql);
		$total_count = $row['cnt'];
		echo $sql;
	} else {
		$sql_search = "";
		$total_count = $board['bo_count_write'];
	}
}

알려주신 방법으로 해도 잘 되네요!! 드디어ㅠㅠㅠㅠ 휴... 정말 감사드립니다...ㅠㅠㅠㅠㅠㅠ

근데 제가 막 만져봤을땐 {$sql_search_add} 이게 안먹히는거 같았는데...;; 뭔가 구문쓸때 잘못된거였겠죠....??

전 직접 저런식으로 db를 가져오는건 짜지를 못해서...ㅠㅠㅠ

else{
    $sql_search = "";
   
    if($bo_table === 'portfolio'){
        $sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM {$write_table} WHERE {$sql_search_add}";
        $row = sql_fetch($sql);
        $total_count = $row['cnt'];
    }
}

전 이렇게 썼었는데... 안돼가지구...ㅠㅠㅠ $sql_search 이 내용도 있었어야 하는거군요...ㅠㅠㅠ

답변을 작성하시기 전에 로그인 해주세요.
전체 0
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

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