테스트 사이트 - 개발 중인 베타 버전입니다

공지사항 모든 게시판 적용에 대해 질문드립니다. 채택완료

3년 전 조회 1,462

그누보드 팁자료실에 있는 공지사항을 모든 게시판에 적용하는 소스코드를 적용했습니다.

// 공지 처리(추가)
$board_notice_name='notice'; // 전체 공지를 줄 게시판명 (공지게시판을 따로 두어야함..)
$board_notice=sql_fetch(" select * from `g5_board` where `bo_table`='$board_notice_name' ");
if (!$sca && !$stx && $board['bo_table']!=$board_notice_name) {
    $arr_notice = explode(',', trim($board_notice['bo_notice']));
    $from_notice_idx = ($page - 1) * $page_rows;
    if($from_notice_idx < 0)
        $from_notice_idx = 0;
    $board_notice_count = count($arr_notice);
    $total_count+=$board_notice_count;

    for ($k=0; $k<$board_notice_count; $k++) {
        if (trim($arr_notice[$k]) == '') continue;

        $row = sql_fetch(" select * from `g5_write_".$board_notice_name."` where wr_id = '{$arr_notice[$k]}' ");

        if (!$row['wr_id']) continue;

        $notice_array[] = 0;

        if($k < $from_notice_idx) continue;

        $list[$i] = get_list($row, $board_notice, $board_skin_url, G5_IS_MOBILE ? $board['bo_mobile_subject_len'] : $board['bo_subject_len']);
        $list[$i]['is_notice'] = true;

        $i++;
        $notice_count++;

        if($notice_count >= $list_page_rows)
            break;
    }
}


// 공지 처리(원본)
if (!$sca && !$stx) {
......(후략)

그 후에 공지사항 게시판에서 공지 체크하고 글쓰기 한 후에 게시글을 삭제하면 아래 사진과 같이 공지사항 게시판은 페이지 건수가 0이 되는데 공지사항을 제외한 다른 게시판은 다 1이 됩니다. 혹시 이걸 어떻게 수정해야하는지 알 수 있을까요?

 

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트

</p>

<p>위 코드로만 추측 하건데 아래 부분이 틀렸습니다</p>

<p><span class="token variable">$board_notice_count</span> <span class="token operator">=</span> <span class="token function">count</span><span class="token punctuation">(</span><span class="token variable">$arr_notice</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token variable">$total_count</span><span class="token operator">+</span><span class="token operator">=</span><span class="token variable">$board_notice_count</span><span class="token punctuation">;</span></p>

<p>수정</p>

<p><span class="token variable">if($arr_notice[0]) $board_notice_count</span> <span class="token operator">=</span> <span class="token function">count</span><span class="token punctuation">(</span><span class="token variable">$arr_notice</span><span class="token punctuation">); else </span><span class="token variable">$board_notice_count =0;</span>

<span class="token variable">$total_count</span><span class="token operator">+</span><span class="token operator">=</span><span class="token variable">$board_notice_count</span><span class="token punctuation">;</span></p>

<p>

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

안녕하세요?
균이 님께서 지적하신 바가 맞는 것 같네요!
3번째 행에서 sql_fetch의 결과값이 없더라도 9번째 행에서 count가 1이 되는 문제가 있어서
이러한 문제가 발생하는 것으로 보이네요~

[code]
$board_notice=sql_fetch(" select * from `g5_board` where `bo_table`='$board_notice_name' ");
$arr_notice = explode(',', trim($board_notice['bo_notice']));
$board_notice_count = count($arr_notice);
[/code]

따라서 9번째 행을 다음과 같이 수정을 하거나 균이 님 댓글처럼 수정하면 됩니다 :)

[수정 전]
[code]
$board_notice_count = count($arr_notice);
[/code]

[수정 후]
[code]
$board_notice['bo_notice'] ? $board_notice_count = count($arr_notice) : $board_notice_count = 0;
[/code]

그럼 다들 편안한 밤 되세요 ^-^
균이님과 innisfree님 두분다 감사합니다!! 엄청 잘되네요!

댓글을 작성하려면 로그인이 필요합니다.

당장은

해당 게시판 관리 페이지"에 게시물 수? 조정 이런 것을 체크하면 확인 누르시면 숫자 어긋나는 것은 해결 될 겁니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

음~ 공지사항 추가를 하실때는 모든 게시판에 추가되게 하셨나요?

모든 게시판에 추가를 하시고 삭제할때는 공지사항 게시판만 삭제하셔서 그런 것 같습니다.

공지사항 게시판에서 삭제할때 다른게시판에 추가된 공지글도 같이 지워주시면 되지않을까요?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

다른게시판에 추가된 공지글을 어떻게 지워야하나요? 다른 게시판에 있는 공지글을 게시판에서 삭제버튼 눌러서 삭제해도 계속 남아있어서요..
아..이게 공지 부분을 공지 게시판에 있는 거를 가져와서 뿌려주게 되어있는건가보군요?
그런데 공지를 지워도 카운팅이 남아있는걸 보니 어디서 카운팅이 되는지 확인을 해봐야할 것 같습니다.
저 자유게시판 total1건 값이 어디서 1이되는지 봐야할 것 같아요

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인

전체 질문 목록

🐛 버그신고