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

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

QA

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

본문

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

 

2009912424_1700633807.8291.png 

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

2009912424_1700633862.9047.png

 

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

 


                <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

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

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

 

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


<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

 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 61
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT