전체 게시물 갯수 뽑아오기 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

전체 게시물 갯수 뽑아오기 정보

전체 게시물 갯수 뽑아오기

본문

소스 제공자 : 별을 따다줘님



<!-- 총 게시물수 뽑아오기 시작 -->
<? 
//게시물수 뽑기
 $results1 = sql_query(" SELECT bo_table FROM $g4[board_table] ");
 
  $all_com = 0;
   $all_art= 0;
   $i=0;
     while ($row13 = sql_fetch_array($results1)) {
    
 $i++; //테이블수
    //게시물
    $gul_su="select count(wr_is_comment) as ctt from g4_write_$row13[bo_table] where wr_is_comment='0' ";
    
    //코멘트
    $co_su="select sum(wr_is_comment) as ctt2 from g4_write_$row13[bo_table] where wr_is_comment='1' "; 
    //게시물
    $article = sql_fetch($gul_su);
    $article_su=$article[ctt];
    $all_art= $all_art +$article_su;
    
    //코멘트
    $comm= sql_fetch($co_su);
    $comm_su=$comm[ctt2];
    $all_com = $all_com+$comm_su;
 }


?>
<!-- 총게시물수뽑아오기 끝 -->
출력
 <div width="50%" align="left"> <font color="#1AA9DE"><strong>등록된 총게시물</strong></font> : 
          <?=number_format($all_art)?>
            건 </div>

추천
3

댓글 2개

좋은 팁 감사합니다. ^^

위 방법이 전체 글수를 파악하는데 가장 정확한 방법일 듯 합니다.
단, 전체 테이블을 모두 쿼리해야 하기 때문에 많이 사용되지 않는 곳이 적당할 것 같군요.

g4_board 테이블의 bo_count_write, bo_count_comment  필드값에는
각 게시판의 글수, 코멘트수를 저장하게 되어 있는데요
글/코멘트 작성,삭제 후 업데이트가 정상적으로 된다면

SELECT SUM(bo_count_write) AS BCW, SUM(bo_count_comment) AS BCC FROM g4_board

위 쿼리로 전체 글/코멘트 수를 알수 있을 듯 합니다.
단지 업데이트가 정확했다는 가정하에 입니다.
누락이 되었다면 정확한 카운팅이 필요한 곳에서는 치명적입니다
모든 게시판을 쿼리해서 글의 수를 카운트 하는 방법이 가장 정확하고, 그다음은 웹비즈님 말씀처럼 g4_board 테이블의 bo_count_write, bo_count_comment 를 가져오는 방법이 부하도 적고 가장 빠릅니다. 하지만 웹비즈님 말씀처럼 누락되지 않았다는 가정하에 가능한데, 그누보드가 innodb 방식으로 개정이 된다면 아마도 누락없이 가능할겁니다.

글 삭제시 글은 삭제했는데 카운트 수정 부분에서 렉이나 통신 환경에 따라 끊겨서 미쳐 DB갱신이 되지 않았을수도있는데 innodb의 경우 이런경우에 다시 롤백시키기 때문이죠.

그리고 굳이 innodb까지는 아니더라도 굉장히 민감한 카운트가 아니라면 현재 bo_count와 테이블의 실제 글수를 비교해서 숫자가 다른경우 갱신해주는 php코드를 작성해서 서버에서 cron으로 매일 한번씩 돌려줘도 되고 아니면 관리자가 수동으로 한번씩 돌려줘도 큰오차없이 운영 가능할거란 생각이 듭니다. ^^;
전체 15 |RSS
그누4 팁자료실 내용 검색

회원로그인

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