특정 게시판의 게시물수 뽑기중 여분필드 값의 수만 뽑을 수 있을까요?

특정 게시판의 게시물수 뽑기중 여분필드 값의 수만 뽑을 수 있을까요?

QA

특정 게시판의 게시물수 뽑기중 여분필드 값의 수만 뽑을 수 있을까요?

본문

안녕하세요.
검색을 통해 메인페이지에서 특정 게시판의 총 게시물 수, 오늘 등록된 게시물 수를 뽑았습니다.

 

그런데, 한가지 더 뽑아야 하는데, 이게 좀 까다롭습니다.
특정 게시판에 아래처럼 여분필드를 이용해서 값을 등록하는곳이 있습니다.

 


<select name="wr_10" class="frm_input">
<option value="" selected>선택</option>
<option value="1" <?=($write['wr_10'] == "1")?'selected':'';?>>1번값</option>
<option value="2" <?=($write['wr_10'] == "2")?'selected':'';?>>2번값</option>
<option value="3" <?=($write['wr_10'] == "3")?'selected':'';?>>3번값</option>
</select>

 

이중 2번값이 적용된 게시물만 수를 뽑고 싶은데, 전혀 방법을 모르겠습니다.
혹시 아시는분 방법 좀 알려주시면 정말 감사하겠습니다.

 

 

참고로 특정게시판의 총 게시물 수, 오늘 등록된 게시물 수 뽑는건 아래와 같은 방법으로 하였습니다.


extend/user.config.php 파일에 함수 추가
====================================


<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가;
// 특정 게시판 전체 글 수
function bo_write_cnt($bo_table)
{
    global $g5;
    $row = sql_fetch(" select bo_count_write from {$g5['board_table']} where bo_table = '$bo_table' ");
    return (int)$row['bo_count_write'];
}
// 특정 게시판 일일 게시물
function new_write_count($bo_table, $days=1)
{
    global $g5;
    
    // 게시판 테이블
    $write_table = $g5['write_prefix'].$bo_table;
    
    $tmp_datetime = date("Y-m-d H:i:s", G5_SERVER_TIME - (86400 * $days));
    $row = sql_fetch(" select sum(if(wr_id=wr_parent,1,0)) as cnt from {$write_table} where bn_datetime > '$tmp_datetime' ");
    return (int)$row['cnt'];
}


출력방법
=======
총 게시물 수 : ?php echo number_format(bo_write_cnt('게시판 테이블명')) ?>개
오늘 등록된 게시물 수 : <?php echo new_write_count('게시판 테이블명', '1'); ?>개

이 질문에 댓글 쓰기 :

답변 3


$sql = " select count(*) as cnt from `{$g5['write_prefix']}{$bo_table}` where wr_10 = 2 ";
$row = sql_fetch($sql);
$total_count = $row['cnt'];
이런식으로 쓸수도 있겠구요.

function bo_field_count($bo_table, $field, $value)
{
    global $g5;
    $sql = " select count(*) as cnt from `{$g5['write_prefix']}{$bo_table}` where {$field} = '{$value}' ";
    $row = sql_fetch($sql);
    return (int) $row['cnt'];
}

// 자유게시판의 wr_10 필드에서, 2값의 카운트를 확인
bo_field_count('free', 'wr_10', 2);
select count(*) as cnt from $write_table where wr_10=2

이런식으로 db 쿼리로 카운팅해서 가저도록 적용해 주셔야 합니다.

    $tmp_datetime = date("Y-m-d H:i:s", G5_SERVER_TIME - (86400 * $days));
// 이건 오늘"이 아니고 24 시간입니다.

    $row = sql_fetch(" select count(*) cnt from {$write_table} where wr_10='2' and wr_datetime >= curdate() ");
    return (int)$row['cnt'];
}
답변을 작성하시기 전에 로그인 해주세요.
전체 123,638 | RSS
QA 내용 검색

회원로그인

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