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

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

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년 전
감사합니다. 처음 남겨주신 댓글로 적용해볼려고 노력해봤지만 계속 실패하고 있었는데,
추가해 주신 댓글로 바로 해결하였습니다.
정말 감사합니다.

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

    $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년 전
친절하신 답변 감사합니다.

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

플라이
2년 전
select count(*) as cnt from $write_table where wr_10=2

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

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

답변에 대한 댓글 1개

m
masahide
2년 전
친절하신 답변 감사합니다.

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

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

로그인