공지를 체크한 게시물을 페이지당 목록수에서 빼려면 어떻게하면 될까요?

공지를 체크한 게시물을 페이지당 목록수에서 빼려면 어떻게하면 될까요?

QA

공지를 체크한 게시물을 페이지당 목록수에서 빼려면 어떻게하면 될까요?

본문

안녕하세요. :)
아래는 list.skin.php에서 게시물에 공지를 체크하였을때, 목록에서 안보이게 하는 소스인데요~.
공지를 체크하면 게시물이 보이지는 않는데요.
페이지당 목록수를 10개로 해 놓았는데,
목록에서 이상하게 9개가 출력됩니다.
공지 체크한 게시물이 수량에 포함 되는 것 같아요.
공지를 체크한 게시물을 페이지당 목록수에서 빼려면 어떻게하면 될까요?
도움 부탁 드려요.~
 
<?
$notice_array = explode("\n", trim($board[bo_notice]));
for ($i=0; $i<count($list); $i++) {
$bg = $i%2 ? 0 : 1;
if(in_array($list[$i][wr_id] , $notice_array))
{
continue; //글로서 공지이면 노출안시킴
}
?>

이 질문에 댓글 쓰기 :

답변 1

list.php에서 10개씩 불러온 뒤에 list.skin.php에서 공지인 경우 출력을 안 하는 방식인 것 같군요.
애초에 10개를 불러온 뒤에 공지인 경우 출력만 안 하는 방식이기 때문에 스킨에서 조정해서는 방법이 없을 것 같군요.
list.php에서 10개를 불러올 때 공지가 아닌 것들 중에서 10개씩 불러오도록 쿼리를 수정해야 할 것 같습니다.

말러83님 답변 감사드립니다.:)
list.php 에서 아래 처럼 수정하였는데, 수량이 빠지질 않아요.
어디가 잘못 되었나요?
도움 부탁 드려요.
 
$list = array();
$i = 0;
$j = 0;  // 공지사항 갯수
if (!$sca && !$stx)
{
    $arr_notice = explode("\n", trim($board[bo_notice]));
    for ($k=0; $k<count($arr_notice); $k++)
    {
        if (trim($arr_notice[$k])=='') continue;
        $row = sql_fetch(" select * from $write_table where wr_id = '$arr_notice[$k]' ");
        if (!$row[wr_id]) continue;
        $list[$i] = get_list($row, $board, $board_skin_path, $board[bo_subject_len]);
        $list[$i][is_notice] = true;
        $i++;
  $j++;  // 공지사항 갯수 추가
    }
}
$k = 0;
while ($row = sql_fetch_array($result))
{
    // 검색일 경우 wr_id만 얻었으므로 다시 한행을 얻는다
    if ($sca || $stx)
        $row = sql_fetch(" select * from $write_table where wr_id = '$row[wr_parent]' ");
 $arr_notice = explode("\n", trim($board[bo_notice]));
 if(@in_array($row[wr_id], $arr_notice)) continue;  // 공지사항 일 때 리스트 포함 X
    $list[$i] = get_list($row, $board, $board_skin_path, $board[bo_subject_len]);
    if (strstr($sfl, "subject"))
        $list[$i][subject] = search_font($stx, $list[$i][subject]);
    $list[$i][is_notice] = false;
    //$list[$i][num] = number_format($total_count - ($page - 1) * $board[bo_page_rows] - $k);
    $list[$i][num] = $total_count - ($page - 1) * $board[bo_page_rows] - $k -$j;  //공지갯수만큼 빼고num계산
    $i++;
    $k++;
}

답변을 작성하시기 전에 로그인 해주세요.
전체 15,344
QA 내용 검색
filter #php ×

회원로그인

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