채택완료

댓글수 카운트하기

2020-07-21 (화) 16:50:02 3,314

최신글에 글마다 댓글갯수를 구하는데 있어서

댓글에 비밀글 체크가 있어서 체크된것과 안된것을

따로 구분하여 카운트하고자 하는데

1. 비밀댓글수

<?php  if ($list[$i]['wr_option'] == "secret") { ?>

<?php echo $list[$i]['comment_cnt']; ?> 

<? } ?> 

2. 비밀댓글을 제외한 댓글수

<?php  if (!$list[$i]['wr_option'] == "secret") { ?>

<?php echo $list[$i]['comment_cnt']; ?> 

<? } ?> 

이건 아닌것 같은데 어떻게 해야하나요??

|

답변 3개 / 댓글 5개

채택된 답변
+20 포인트

그냥 단순히 sql 명령어로 하셔도 될것 같네요.

Copy
if ($list[$i]['comment_cnt'])  {
            //    echo "<span class=\"lt_cmt\">".$list[$i]['wr_comment']."</span>";
            $secret_cnt = "select count(*) as cnt from `g5_write_".$list[$i]['bo_table']."` where `wr_parent` = '".$list[$i]['wr_id']."' and `wr_option` like '%secret%' ";
            $secret_cnt = sql_fetch($secret_cnt);
            $nosecret_cnt    = $list[$i]['wr_comment'] - $secret_cnt['cnt'];//원래 코멘트에서 비밀댓글 수를 뺌
            echo "<span class=\"lt_cmt\">".$secret_cnt['cnt']."</span>"; //비밀댓글 수
            echo "<span class=\"lt_cmt\">".$nosecret_cnt."</span>"; //비밀댓글이 아닌수
            }

답변에 대한 댓글 2개

2020-07-21 (화) 18:46:49
감사합니다 ^^
자세히 보니 조건문 하나가 빠졌네요.
and `wr_is_comment` = '1'
이걸 추가해주세요~
$secret_cnt = "select count(*) as cnt from `g5_write_".$list[$i]['bo_table']."` where `wr_parent` = '".$list[$i]['wr_id']."' and `wr_is_comment` = '1' and `wr_option` like '%secret%' ";

위대로 하면 본문글이 비밀글일 때도 같이 카운트 1개가 늘어납니다~

SQL을 통해서 구하시는게 아니라면

$listcnt = count($list);

$seccnt = 0;

$nseccnt = 0;

for ($i=0; $i < $listcnt; $i++)  {

    if ($list[$i]['wr_option'] == 'secret')

        $seccnt += $list[$i]['comment_cnt'];

    else

        $nseccnt +=$list[$i]['comment_cnt']; 

}

echo "비밀댓글수 : ".$seccnt."<BR>";

echo "일반댓글수 : ".$nseccnt."<BR>";

로 하셔야 할것 같습니다.

답변에 대한 댓글 2개

2020-07-21 (화) 18:00:44
네 그냥 최신글에서 출력하려는겁니다. 알려주신대로 하면 둘다 0 으로 카운트되네요. ㅜㅜ
2020-07-21 (화) 18:44:10
비밀댓글수 :
<?
$row = sql_fetch("select count(*) as cnt from g5_write_free where wr_option = secret ");
echo $row[cnt];
?>

이런방법으로도 못구하고 혹시 latest.lib.php를 수정해야 하는 것일까요?
2020-07-21 (화) 16:55:48

list comment_cnt가 코맨트 cnt 갯수라면 php단에서 where절로 구분해서 comment_cnt , comment_hide_cnt등으로 구분해서 2개를 뽑아내서 뿌려주면 되겠네요

<?php  if ($list[$i]['wr_option'] != "secret") { ?>

<?php echo $list[$i]['comment_cnt']; ?> 

<? } ?> 

여기서 secret 비밀댓글 여부와 관계없이 comment_cnt값은 같은값일거같네요

답변에 대한 댓글 1개

2020-07-21 (화) 18:20:24
네 조건과 관계없이 그냥 댓글 갯수만 출력됩니다. 현재는...

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