테스트 사이트 - 개발 중인 베타 버전입니다

별점이 높은 순서대로 게시글 순서를 불러오고싶습니다. 채택완료

호딸붐 8년 전 조회 1,814

리스트에서 별표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개

F
8년 전

(참고로 adm/board_form.php 이 파일은 게시판 생성 페이지 파일입니다.)


개인적인 생각이지만, 앞 뒤 다 자르고 이 부분만 봐서는 정확한 답변이 어려울 것 같습니다.


물론 능력자 분이 계시다면 가능하시겠죠...


아무튼 이 부분만 보고 답변을 드려보자면,


저같으면 본문처럼 리스트를 출력하면서 계산을 하는게 아니라


해당 게시글의 리뷰가 등록될 때, 미리 계산을 해서 DB에 넣어놓겠습니다.


여분필드든, 새로운 필드를 만들든 해서요.


그리고 리스트를 출력할 때 그 필드에 들어있는 미리 계산된 값을 기준으로 높은 순으로 출력하겠습니다.




로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인