별점이 높은 순서대로 게시글 순서를 불러오고싶습니다.
본문
리스트에서 별표5개와 0/100점 이 뜨는 부분입니다.
리스트순서를 별점이 높은 순서대로 불러오고 싶은데
adm/board_form.php에 어찌 수정해야되는지요/..?
<div class="td_subject" style="text-align:right">
<?php
$use_count = 0;
for ($jj=3; $jj<11; $jj++) {
if($board['bo_'.$jj.'_subj']==''){
continue;
}
$use_count++;
}
$point_parent_id = $list[$i]['wr_id'];
$point_sql = " select sum(wr_2+wr_3+wr_4+wr_5+wr_6+wr_7+wr_8+wr_9+wr_10) sum_point, (select count(*) from $write_table where wr_parent = '$point_parent_id' and wr_is_comment = '1') point_count from $write_table where wr_parent = '$point_parent_id' and wr_is_comment = '1' ";
$point_cmt = sql_fetch($point_sql);
$sum_point = $point_cmt['sum_point']==''? 0 : $point_cmt['sum_point'];
$point_count = $point_cmt['point_count']==''? 0 : $point_cmt['point_count'];
$calc_point = $point_count==0 ? 0 : $sum_point/($point_count*$use_count)/$board['bo_1']*100;
?>
<div class="star">
<?php for ($si=0; $si < floor($calc_point*0.05); $si++){ ?>
<img src="<?php echo $board_skin_url; ?>/img/icon_star.png" width="16" height="16">
<?php } ?>
<?php for ($si=0; $si < 5-floor($calc_point*0.05); $si++){ ?>
<img src="<?php echo $board_skin_url; ?>/img/icon_gray_star.png" width="16" height="16">
<?php } ?>
</div>
<!--<b style="color:#2E2E2E"><?php echo floor($calc_point); ?> / 100점</b>-->
</div>
이부분을 어찌 수정해야되는지요..?별점이 높은 순으로 글을 불러오고 싶습니다.
<option value="point_sql asc" <?php echo get_selected($board['bo_sort_field'], "point_sql asc"); ?>>point_sql asc : 별점높은순</option>
답변 1
(참고로 adm/board_form.php 이 파일은 게시판 생성 페이지 파일입니다.)
개인적인 생각이지만, 앞 뒤 다 자르고 이 부분만 봐서는 정확한 답변이 어려울 것 같습니다.
물론 능력자 분이 계시다면 가능하시겠죠...
아무튼 이 부분만 보고 답변을 드려보자면,
저같으면 본문처럼 리스트를 출력하면서 계산을 하는게 아니라
해당 게시글의 리뷰가 등록될 때, 미리 계산을 해서 DB에 넣어놓겠습니다.
여분필드든, 새로운 필드를 만들든 해서요.
그리고 리스트를 출력할 때 그 필드에 들어있는 미리 계산된 값을 기준으로 높은 순으로 출력하겠습니다.