각각 게시판에서 출력된 게시물 숫자를 더하려면 - 2
본문
안녕하세요?
항상 건강하십시오~
다시 한 번 올립니다. 죄송합니다.
다음의 팁을 사용하고 있습니다.
* 각 게시판의 24시간 이내 새로운 글 숫자 표시하기 → https://sir.kr/g5_tip/6373
그런데,
자유게시판의 24시간 이내 게시물은 <?php echo new_count("free"); ?> 이것을 사용하여 10개로 출력이 되어 있고
질문답변 게시판의 24시간 이내의 게시물은 <?php echo new_count("qna"); ?> 이것을 사용하여 7개로 출력이 되고 있다면 이것을 더하는 방법은 어떻게 해야 하는지요?
즉, <?php echo new_count("free"); ?> + <?php echo new_count("qna"); ?> = 17개로 출력을 하려면 어떻게 해야 하는지요?
이 두 개를 나란히 하여 따로따로 두면 출력이 잘 됩니다.
<?php echo new_count("free") + new_count("qna"); ?>
<?=(intval(new_count(free))+intval(new_count(qna))); ?>
......,
......,
기초가 없다 보니까 위처럼 이렇게 저렇게 해도 안 되고 있습니다.
좋은 방법을 알려주시면 감사하겠습니다.
오늘도 좋은 하루 되십시오~^^)
답변 3
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 ? " <font style='font-weight:normal;font-size:12px;color:blue';>(".$cnt.")</font>" : '';
}
echo new_count('free', 'qna');
해당 함수로 리턴되는 값의 형태는, https://sir.kr/g5_tip/6373
"<font style='font-weight:normal;font-size:12px;color:blue';>10</font>"
"<font style='font-weight:normal;font-size:12px;color:blue';>7</font>"
과 같은 형태입니다.
그래서 두 리턴값의 + 가 의도한 것과 같은 결과대로 나오지 않았던 것입니다.
"10" 과 "7" 로 리턴되는 형태라면 "10" + "7" 은 "17과 같이 나오게 됩니다.
해당 function new_count() 를 10, 7 과 같은 형태의 숫자만 리턴되도록 변경해주고,
출력하는 곳의 태그는 직접 구성해 주는 방식으로 하면 됩니다.
(function new_count() 하단을 다음과 같이 수정)
ex.
if ($total_count > 0) {
return $total_count;
} else {
return $total_count;
}
일단
리턴할때
$str_cnt .= " <font style='font-weight:normal;font-size:12px;color:blue';>(".$total_count.")</font>";
숫자가 아닌 html 태그까지 리턴하는데 이값을 서버측에서 계산할 수 있을까요?;;
아래처럼 테스트 해보니 잘 됩니다
<?php
//24시간 이내의 글 수 알아내기
function new_count($table_id){
$tmp_write_table = G5_TABLE_PREFIX."write_".$table_id;
$sql2 = "select * from $tmp_write_table where wr_datetime >= date_add(now(), interval -1 day) ";
// 새로운 글이 몇 개 있는지 확인합니다.
$result2 = sql_query($sql2);
$total_count = sql_num_rows($result2);
if ($total_count > 0) {
$str_cnt = $total_count;
return $str_cnt;
}
else {
$str_cnt = "";
return $str_cnt;
}
}
?>
<?php
echo (int)(new_count("test")+(int)new_count("test2"));
?>