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

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

QA

각각 게시판에서 출력된 게시물 숫자를 더하려면 - 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"));
?>




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

답변을 작성하시기 전에 로그인 해주세요.
전체 13
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT