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

각각 게시판에서 출력된 게시물 숫자를 더하려면 - 2 채택완료

허당빵 8년 전 조회 2,526

안녕하세요?

항상 건강하십시오~

다시 한 번 올립니다. 죄송합니다.

다음의 팁을 사용하고 있습니다.

* 각 게시판의 24시간 이내 새로운 글 숫자 표시하기 → https://sir.kr/g5_tip/6373">https://sir.kr/g5_tip/6373 

그런데,

자유게시판의 24시간 이내 게시물은 이것을 사용하여 10개로 출력이 되어 있고 

질문답변 게시판의 24시간 이내의 게시물은  이것을 사용하여 7개로 출력이 되고 있다면 이것을 더하는 방법은 어떻게 해야 하는지요?

 

즉,  +  = 17개로 출력을 하려면 어떻게 해야 하는지요? 

이 두 개를 나란히 하여 따로따로 두면 출력이 잘 됩니다.

 

......,

......,

기초가 없다 보니까 위처럼 이렇게 저렇게 해도 안 되고 있습니다.

좋은 방법을 알려주시면 감사하겠습니다.

오늘도 좋은 하루 되십시오~^^)

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

답변 3개

채택된 답변
+20 포인트
8년 전

function new_count(){

    $cnt = 0;

    foreach (func_get_args() as $table_id) {        

        // 여기는 오늘과 글쓴 날짜를 비교합니다.

        $tmp_write_table = G5_TABLE_PREFIX."write_".$table_id;  // 해피정님 제안코드로 수정

        $row = sql_fetch(" select count(*) cnt from $tmp_write_table where wr_datetime >= date_add(now(), interval -1000 day) and wr_is_comment=0 "); // 댓글 제외

        $cnt += $row['cnt'];

    }

    return $cnt ? " (".$cnt.")" : '';

}

echo new_count('free', 'qna'); 

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

답변에 대한 댓글 2개

허당빵
8년 전
잘 해결하였습니다.
그런데 숫자가 엄청나와서 깜짝 놀랐습니다.
-1000 day 로 되어 있었네요~
-1day로 바꿨더니 잘 됩니다.
오늘도 좋은 하루 되시기 바랍니다.
감사합니다.
허당빵
8년 전
제시하신 코드가 훨씬 좋네요~
한 게시판을 사용하거나 두 개 세개의 게시판을 합할 수도 있고~^^)
https://sir.kr/g5_tip/6373 여기에다 슈와이님의 코드도 첨부하였습니다.
감사합니다.

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

8년 전

일단 

리턴할때 

$str_cnt .= " (".$total_count.")";  

숫자가 아닌 html 태그까지 리턴하는데 이값을 서버측에서 계산할 수 있을까요?;;

아래처럼 테스트 해보니 잘 됩니다

</span></p><p><span style="font-family: Arial, 돋움, Dotum; color: rgb(72, 72, 72);"><span style="font-size: 14.004px;"><?php </span></span></p><p><span style="font-family: Arial, 돋움, Dotum; color: rgb(72, 72, 72);"><span style="font-size: 14.004px;">//24시간 이내의 글 수 알아내기 </span></span></p><p><span style="font-family: Arial, 돋움, Dotum; color: rgb(72, 72, 72);"><span style="font-size: 14.004px;">function new_count($table_id){ </span></span></p><p><span style="font-family: Arial, 돋움, Dotum; color: rgb(72, 72, 72);"><span style="font-size: 14.004px;">
</span></span></p><p><span style="font-family: Arial, 돋움, Dotum; color: rgb(72, 72, 72);"><span style="font-size: 14.004px;"><span style="white-space:pre">	</span>$tmp_write_table = G5_TABLE_PREFIX."write_".$table_id;</span></span></p><p><span style="font-family: Arial, 돋움, Dotum; color: rgb(72, 72, 72);"><span style="font-size: 14.004px;"><span style="white-space:pre">	</span>$sql2 = "select * from $tmp_write_table where wr_datetime >= date_add(now(), interval -1 day) ";</span></span></p><p><span style="font-family: Arial, 돋움, Dotum; color: rgb(72, 72, 72);"><span style="font-size: 14.004px;">
</span></span></p><p><span style="font-family: Arial, 돋움, Dotum; color: rgb(72, 72, 72);"><span style="font-size: 14.004px;"><span style="white-space:pre">	</span>// 새로운 글이 몇 개 있는지 확인합니다. </span></span></p><p><span style="font-family: Arial, 돋움, Dotum; color: rgb(72, 72, 72);"><span style="font-size: 14.004px;"><span style="white-space:pre">	</span>$result2 = sql_query($sql2); </span></span></p><p><span style="font-family: Arial, 돋움, Dotum; color: rgb(72, 72, 72);"><span style="font-size: 14.004px;"><span style="white-space:pre">	</span>$total_count = sql_num_rows($result2); </span></span></p><p><span style="font-family: Arial, 돋움, Dotum; color: rgb(72, 72, 72);"><span style="font-size: 14.004px;">
</span></span></p><p><span style="font-family: Arial, 돋움, Dotum; color: rgb(72, 72, 72);"><span style="font-size: 14.004px;"><span style="white-space:pre">	</span>if ($total_count > 0) { </span></span></p><p><span style="font-family: Arial, 돋움, Dotum; color: rgb(72, 72, 72);"><span style="font-size: 14.004px;"><span style="white-space:pre">	</span>$str_cnt = $total_count; </span></span></p><p><span style="font-family: Arial, 돋움, Dotum; color: rgb(72, 72, 72);"><span style="font-size: 14.004px;"><span style="white-space:pre">	</span>return $str_cnt; </span></span></p><p><span style="font-family: Arial, 돋움, Dotum; color: rgb(72, 72, 72);"><span style="font-size: 14.004px;"><span style="white-space:pre">	</span>} </span></span></p><p><span style="font-family: Arial, 돋움, Dotum; color: rgb(72, 72, 72);"><span style="font-size: 14.004px;"><span style="white-space:pre">	</span>else { </span></span></p><p><span style="font-family: Arial, 돋움, Dotum; color: rgb(72, 72, 72);"><span style="font-size: 14.004px;"><span style="white-space:pre">	</span>$str_cnt = ""; </span></span></p><p><span style="font-family: Arial, 돋움, Dotum; color: rgb(72, 72, 72);"><span style="font-size: 14.004px;"><span style="white-space:pre">	</span>return $str_cnt; </span></span></p><p><span style="font-family: Arial, 돋움, Dotum; color: rgb(72, 72, 72);"><span style="font-size: 14.004px;"><span style="white-space:pre">	</span>} </span></span></p><p><span style="font-family: Arial, 돋움, Dotum; color: rgb(72, 72, 72);"><span style="font-size: 14.004px;">
</span></span></p><p><span style="font-family: Arial, 돋움, Dotum; color: rgb(72, 72, 72);"><span style="font-size: 14.004px;">} </span></span></p><p><span style="font-family: Arial, 돋움, Dotum; color: rgb(72, 72, 72);"><span style="font-size: 14.004px;">?> </span></span></p><p><span style="font-family: Arial, 돋움, Dotum; color: rgb(72, 72, 72);"><span style="font-size: 14.004px;">
</span></span></p><p><span style="font-family: Arial, 돋움, Dotum; color: rgb(72, 72, 72);"><span style="font-size: 14.004px;"><?php</span></span></p><p><span style="font-family: Arial, 돋움, Dotum; color: rgb(72, 72, 72);"><span style="font-size: 14.004px;">echo (int)(new_count("test")+(int)new_count("test2"));</span></span></p><p><span style="font-family: Arial, 돋움, Dotum; color: rgb(72, 72, 72);"><span style="font-size: 14.004px;">?></span></span></p><p><span style="color: rgb(72, 72, 72); font-family: Arial, 돋움, Dotum; font-size: 14.004px;">

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

답변에 대한 댓글 1개

허당빵
8년 전
감사합니다.
그런데 head.php에 이전 것은 다 없애고 그대로 넣고 실행을 하니 그 위치 아래로는 작동이 되지 않습니다.
그리고, index.php 상단에 그대로 넣어보면 작동이 멈춰 아무 것도 나타나지 않습니다.
구문에 오류가 있는 것 같습니다.
대부분을 알려주셨는데 해결을 하지 못하고 있습니다....ㅜ

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

8년 전

해당 함수로 리턴되는 값의 형태는, https://sir.kr/g5_tip/6373">https://sir.kr/g5_tip/6373 

"10"

"7"

과 같은 형태입니다.

그래서 두 리턴값의 + 가 의도한 것과 같은 결과대로 나오지 않았던 것입니다.

"10" 과 "7" 로 리턴되는 형태라면 "10" + "7" 은 "17과 같이 나오게 됩니다.

해당 function new_count() 를 10, 7 과 같은 형태의 숫자만 리턴되도록 변경해주고,

출력하는 곳의 태그는 직접 구성해 주는 방식으로 하면 됩니다.

(function new_count() 하단을 다음과 같이 수정)

ex.

</p><p>if ($total_count > 0) { </p><p style="margin-left: 40px;"><span style="font-size: 14.6667px;">return $total_count;</span> </p><p>} else { </p><p style="margin-left: 40px;"><span style="font-size: 14.6667px;">return $total_count;</span></p><p><span style="font-size: 11pt;">} </span> </p><p>

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

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

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

로그인