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

쇼핑몰에 별점 표시하는 방법 채택완료

ZDZ 1년 전 조회 1,855

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

 

 

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

 

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

 

</p>

<p>                <div></p>

<p>                    <?php if ($star_score) { ?></p>

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

<p>                      <img</p>

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

<p>                          alt=""</p>

<p>                          class="sit_star"></p>

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

<p>                    <?php } ?></p>

<p>                   </p>

<p>                    <?php</p>

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

<p>                      $row = sql_fetch($sql);</p>

<p>                      $item_use_count = $row['cnt'];    </p>

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

<p>                     ?></p>

<p>                </div></p>

<p>

 

 

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

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

답변 2개

s
sinbi Expert
1년 전

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

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

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

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

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

 

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

</p>

<p><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);</p>

<p>    // 별점이 있는 경우에만 표시

    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 } ?></p>

<p>    <?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

 

 

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

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

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

로그인