채택완료

댓글수 구하기 질문드립니다~

2018-01-24 (수) 10:35:13 1,063

댓글이 있어도 없어도 등록가능하게 한 게시판이 있는데요.

wr_content 가 있는 댓글수만 따로 구하려고 합니다.

쿼리문으로

Copy
$parent_id = $list[0]['wr_parent'];

        $sql = "SELECT * FROM ( SELECT wr_content, COUNT(*) AS cnt FROM g5_write_EvalCompany WHERE wr_content != '' AND wr_parent = '$parent_id' AND wr_is_comment = '1' GROUP BY wr_content) As tmpCnt ORDER BY tmpCnt.Cnt DESC";


        $result = sql_query($sql2);
        while ($row=sql_fetch_array($result)){
            print_r ($row);

            $amountCount = $row['cnt'].건;
        }

위와 같이 작성했는데..

phpmyadmin 의 표는 잘나오는데

cnt row의 합을 구하는걸 어떻게 해야할지 모르겠습니다.

Copy
$amountCount = count($row['cnt']);

위와 같은 코드로 작성해도 2가 나와야 하는데

1이 나와버리네요...-_-;

답변 2개 / 댓글 2개

채택된 답변
+20 포인트

$parent_id = $list[0]['wr_parent'];
        $sql = "SELECT * FROM ( SELECT wr_content, COUNT(*) AS cnt FROM g5_write_EvalCompany WHERE wr_content != '' AND wr_parent = '$parent_id' AND wr_is_comment = '1' GROUP BY wr_content) As tmpCnt ORDER BY tmpCnt.Cnt DESC";

        $result = sql_query($sql2);
 $amountCount=0;
        while ($row=sql_fetch_array($result)){
           // print_r ($row);
     $amountCount+=$row['cnt'];
        }

 echo $amountCount;

답변에 대한 댓글 1개

아.....
+ 만 붙여주면 되곘군요..
어짜피 반복되는 만큼 row 수만 구하면 되니까..ㅠㅠ
감사합니다

지금 구현하신 쿼리는

Copy
SELECT * FROM (

     SELECT

            wr_content,   

            COUNT(*) AS cnt

     FROM g5_write_EvalCompany

     WHERE wr_content != ''         

             AND wr_parent = '$parent_id'   

             AND wr_is_comment = '1'

      GROUP BY wr_content

      ) As tmpCnt

  ORDER BY tmpCnt.Cnt DESC

의 코드는

부모의글에 해당되는 코멘트들을 각각 카운트한 결과가 됩니다.

원하는 쿼리는

게시글에 달린 코멘트수(내용이 있는) 것으로 가정해서 쿼리를 변경해보면

Copy
SELECT
    a.wr_content
    , count(b.wr_id) cnt
FROM g5_write_EvalCompany a, g5_write_EvalCompany b
WHERE b.wr_content != ''    
    AND a.wr_parent = '{$parent_id}'' 
    AND a.wr_is_comment = '0' 
    and     a.wr_id = b.wr_parent
    and b.wr_is_comment = '1'

로 변경하고 실행해보세요

답변에 대한 댓글 1개

감사드립니다. 한번 시도해볼께요 ㅎ

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