아래 코드처럼 여분 필드 wr_12에 댓글의 별표점수(1~5점)를 받아서 평균값으로 점수를 나타내고 있습니다.
view 페이지에서는 평균값으로 잘 나타나고 있습니다만
list 페이지에서 그 게시물의 댓글들의 점수(wr_12) 평균값을 나타내려면 소스를 어떻게 해야 하는지요?
Copy
<?php
$cmtpoint ='0';
$totalcount = '0';
$userrating = '0';
$tbl = "{$g5[write_prefix]}{$bo_table}";
$sql2 = " select wr_12 from $tbl where wr_is_comment > 0 && wr_parent = '$wr_id' && wr_12 > '0' ";
$result2 = sql_query($sql2);
while($row2 = mysqli_fetch_array($result2) ) {
$point=$row2[0];
$cmtpoint=$cmtpoint + $point;
$totalcount++;
}
if ($totalcount!=0) {
$cmtpoint= $cmtpoint/$totalcount;
$cmtpoint = sprintf("%.1f",$cmtpoint);
$int_cmtpoint = (int)($cmtpoint);
}
?>
<?php echo $cmtpoint ?>
답변 2개 / 댓글 3개
채택된 답변
+20 포인트
2019-01-09 (수) 21:46:20
list.skin.php에서
해당 소스는 그대로 활용하시고,
$wr_id가 들어가는 부분을 list[$i]['wr_id']로 수정하고 게시글을 보여주는 for문 안의 원하는 임의의 장소에 넣으시면 될 듯하네요
답변에 대한 댓글 2개
2019-01-09 (수) 23:02:40
나타낼게 wr_12값이 아니라 그 게시글에 달린 전체 댓글 wr_12 값의 평균값인 $cmtpoint 값이랍니다.
2019-01-10 (목) 01:03:20
제가 잘못 적어 list[$i]['wr_id'] 로 해서 안나타났네요. {$list[$i]['wr_id']} 로 하니까 나타났네요.
감사합니다. ^^
감사합니다. ^^
2019-01-09 (수) 23:17:12
list페이지에 게시글이 20개가 있다고 하면..
각 게시글의 댓글마다 점수(wr_12)가 존재하고..
1. 20개 게시글에 대한 댓글의 평균점수를 알고 싶다는건가요?
2. 아니면 각 게시글마다 평균 점수를 알고 싶다는건가요?
2번이라면 볼피드님 댓글처럼 하시면 되죠.
그리고, 평균값을 구하려면
avg 함수를 사용하면 굳이 while문까지 안해도 될듯합니다.
select avg(wr_12) from ~~
답변에 대한 댓글 1개
2019-01-10 (목) 00:34:05
게시글 전체에 대한 평균점수가 아니라 각 게시글마다의 댓글들의 평균점수를 알려고 합니다. 볼피드님이 알려주신대로 $wr_id가 들어가는 부분을 list[$i]['wr_id'] 로 수정해서 페이지를 보면 0값만 나타나네요.. ㅠㅠ
답변을 작성하려면 로그인이 필요합니다.