카테고리 글갯수 표시문제
본문
카테고리를 중복선택하기 위해서 write.php에 카테고리 선택부분을 아래 소스로 변경하였습니다.
<?
$arr=explode("|",$board[bo_category_list]);
foreach($arr as $str) { ?>
<input type=checkbox name=chk_ca_name[] value='<?=$str?>' ><?=$str?>
<? } ?>
<script>
var f = document.fwrite;
var str=",<?=$write[ca_name]?>,";
for (var i=0; i<f.length; i++) {
if (f.elements[i].name == "chk_ca_name[]") {
if (str.indexOf(','+f.elements[i].value+',')>=0) {
f.elements[i].checked = true;
}
}
}
</script>
문제는 list.php상단에 카테고리 별로 갯수를 표시하고 싶어서요.
능력자분께서 카테고리별 갯수를 나타내는 소스를 알려주셨는데 이소스가 일반 카테고리 스킨에는 제대로 갯수가 표시되는데 write.php에 위 소스를 넣어서인지 갯수가 나타나지를 않습니다. 정상 적인 소스인데 어찌 수정을 해야 갯수가 나올지요?
<?
//카테고리 글수 나타내기
function sca_count($table_id, $chk_ca_name){
$tmp_write_table .= "g4_write_$table_id";
$sql2 = " select * from $tmp_write_table where ca_name = '$chk_ca_name'";
//카테고리 글수 나타내기
function sca_count($table_id, $chk_ca_name){
$tmp_write_table .= "g4_write_$table_id";
$sql2 = " select * from $tmp_write_table where ca_name = '$chk_ca_name'";
$result2 = sql_query($sql2);
$total_count = mysql_num_rows($result2);
if ($total_count > 0) {
$str_cnt .= " [".$total_count."]";
return $str_cnt;
}
else {
$str_cnt .= "";
return $str_cnt;
}
}
?>
$str_cnt .= " [".$total_count."]";
return $str_cnt;
}
else {
$str_cnt .= "";
return $str_cnt;
}
}
?>
<?=sca_count(design1,Basic);?> <--갯수표시부분>
매번 문의글만 남겨 죄송한데 도와주세요 ㅠㅠ
답변 1
" select * from $tmp_write_table where ca_name = '$chk_ca_name'";
$total_count = mysql_num_rows($result2);
↑↑↑↑
이거 상당히 자원 낭비하는 방식입니다.
이건 비유하자면 교실내 학생이 몇명인지 알고 싶다고 전부다 밖으로 불러내서 한명씩 교실로 들여보내면서 알아내는 방식이라고 볼수 있습니다.
" select count(*) as total from ".$tmp_write_table." where ca_name = '$chk_ca_name'";
이렇게 하는게 훠얼씬 효율적입니다.
이건 반장에게 교실내 학생이 몇명인지 파악하라고 하고 궁금하면 반장에게 물어봐서 알아내는(?) 식으로 더 효율적입니다.
그런데...
카테고리 건수 알고 싶다고 게시글 볼때마다 각 카테고리 건수를 매번 세는것도 자원낭비입니다.
접속자가 적으면 상관없는데 많으면 DB 서버를 피곤하게 하는 방식입니다.
답변을 작성하시기 전에 로그인 해주세요.