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

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

멋진난쟁이 3년 전 조회 1,455

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

// 공지 처리(추가)
$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 포인트
3년 전

</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개

I
Innisfree
3년 전
안녕하세요?
균이 님께서 지적하신 바가 맞는 것 같네요!
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]

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

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

당장은

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

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

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

하틴
3년 전

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

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

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

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

답변에 대한 댓글 2개

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

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

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

로그인