특정 게시판의 게시물수 뽑기중 여분필드 값의 수만 뽑을 수 있을까요? 채택완료
masahide
2년 전
조회 1,341
안녕하세요.
검색을 통해 메인페이지에서 특정 게시판의 총 게시물 수, 오늘 등록된 게시물 수를 뽑았습니다.
그런데, 한가지 더 뽑아야 하는데, 이게 좀 까다롭습니다.
특정 게시판에 아래처럼 여분필드를 이용해서 값을 등록하는곳이 있습니다.
</p>
<p><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></p>
<p>
이중 2번값이 적용된 게시물만 수를 뽑고 싶은데, 전혀 방법을 모르겠습니다.
혹시 아시는분 방법 좀 알려주시면 정말 감사하겠습니다.
참고로 특정게시판의 총 게시물 수, 오늘 등록된 게시물 수 뽑는건 아래와 같은 방법으로 하였습니다.
extend/user.config.php 파일에 함수 추가
====================================
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가;</p>
<p>// 특정 게시판 전체 글 수
function bo_write_cnt($bo_table)
{
global $g5;</p>
<p> $row = sql_fetch(" select bo_count_write from {$g5['board_table']} where bo_table = '$bo_table' ");
return (int)$row['bo_count_write'];
}</p>
<p>// 특정 게시판 일일 게시물
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'];
}</p>
<p>
출력방법
=======
총 게시물 수 : ?php echo number_format(bo_write_cnt('게시판 테이블명')) ?>개
오늘 등록된 게시물 수 : <?php echo new_write_count('게시판 테이블명', '1'); ?>개
댓글을 작성하려면 로그인이 필요합니다.
답변 3개
채택된 답변
+20 포인트
2년 전
이런식으로 쓸수도 있겠구요.$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);
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
m
masahide
2년 전
댓글을 작성하려면 로그인이 필요합니다.
2년 전
$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'];
}
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
m
masahide
2년 전
친절하신 답변 감사합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
추가해 주신 댓글로 바로 해결하였습니다.
정말 감사합니다.