미채택 완료

쇼핑몰에 별점 표시하는 방법

안녕하세요, 쇼핑몰에 별점 표시하는 방법 여쭙고자 질문 남깁니다.

2009912424_1700633807.8291.png 

사용후기 쓰기 버튼 누르면 나오는 곳에 보면 이런식으로 별점을 남길 수 있잖아요? 이 별점의 평균?을 매겨서 

2009912424_1700633862.9047.png

이런식으로 별점 평균과 함께 후기 갯수를 남기고 싶습니다. 코드는 아래처럼 짜놨습니다.

Copy
<div>

                    <?php if ($star_score) { ?>

                      <h4 class="sound_only">고객 평점</h4>

                      <img

                          src="<?php echo G5_SHOP_URL; ?>/img/s_star<?php echo $star_score?>.png"

                          alt=""

                          class="sit_star">

                          <span class="st_bg "></span>

                    <?php } ?>

                   

                    <?php

                      $sql = " select count(*) as cnt from `{$g5['g5_shop_item_use_table']}` where it_id = '{$it_id}' and is_confirm = '1'  ";

                      $row = sql_fetch($sql);

                      $item_use_count = $row['cnt'];    

                      echo "<span>(".$item_use_count.")</span>";

                     ?>

                </div>

2009912424_1700634181.8187.png 

실행하면 이렇게 나옵니다. 후기 갯수 추출은 잘되는데 별점 추출이 되지 않습니다.... 별점 추출하고 표시하는건 대체 어떻게 하는걸까요? ㅠㅠ

|

답변 2개

보통, 여분필드로 값을 입력받고, 값별로 해당 별점 이미지를 보여주는 방식으로 구현합니다.

2023-11-22 (수) 15:31:27

위의 코드를 보면 후기 갯수는 정상적으로 추출되고 표시되고 있지만, 별점은 $star_score 변수를 통해 어떻게 계산되는지 알 수 없습니다. 별점을 추출하는 부분이 코드에 누락되었거나, 해당 정보를 가져오는 쿼리가 없는 것으로 보입니다.

일반적으로 별점은 데이터베이스에서 가져와야 하므로, 별점을 계산하는 방법이나 별점이 저장된 위치를 알려주지 않았기 때문에, 별점을 가져오는 부분을 추가해야 할 것으로 보입니다.

다음을 참고 하셔서 원하시는 구조로 구현하시면 되지 않을까 합니다.

Copy
<div>
    <?php
    $sql = "SELECT AVG(star) AS avg_star, COUNT(*) AS review_count FROM `{$g5['g5_shop_item_use_table']}` WHERE it_id = '{$it_id}' AND is_confirm = '1'";
    $row = sql_fetch($sql);

    // 별점이 있는 경우에만 표시
    if ($row['avg_star'] !== null) {
        $star_score = round($row['avg_star']); // 별점 반올림 또는 내림
        ?>
        <h4 class="sound_only">고객 평점</h4>
        <img src="<?php echo G5_SHOP_URL; ?>/img/s_star<?php echo $star_score; ?>.png" alt="" class="sit_star">
        <span class="st_bg "></span>
    <?php } ?>

    <?php
    $review_count = $row['review_count'];
    echo "<span>($review_count)</span>";
    ?>
</div>

이렇게 하면 별점의 평균을 계산하고, 이를 반올림하여 이미지 파일의 이름으로 사용하여 별점을 표시하게 됩니다. 실제 데이터베이스 구조와 필드명에 따라 적절히 수정해 주시면 될 것 같습니다.

참고 URL 

팁자료실 : https://sir.kr/g5_tip?sca=&sfl=wr_subject%7C%7Cwr_content&stx=%EB%B3%84%EC%A0%90

스킨 : https://sir.kr/g5_skin?sca=&sfl=wr_subject%7C%7Cwr_content&stx=%EB%B3%84%EC%A0%90

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