특정 게시판의 게시물수 뽑기중 여분필드 값의 수만 뽑을 수 있을까요?
본문
안녕하세요.
검색을 통해 메인페이지에서 특정 게시판의 총 게시물 수, 오늘 등록된 게시물 수를 뽑았습니다.
그런데, 한가지 더 뽑아야 하는데, 이게 좀 까다롭습니다.
특정 게시판에 아래처럼 여분필드를 이용해서 값을 등록하는곳이 있습니다.
<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'];
}
답변을 작성하시기 전에 로그인 해주세요.