질문좀 드릴게요!
본문
아미나, 나리야 사용중인데 문제가 생겨서요...
최근게시글 위젯
widget_setup.php에서
<div class="row gx-2 mb-2">
<label class="col-md-2 col-form-label">
별점 표시
</label>
<div class="col-md-10">
<div class="form-check">
<?php $wset['is_rating'] = isset($wset['is_rating']) ? $wset['is_rating'] : ''; ?>
<input class="form-check-input" type="checkbox" name="wset[is_rating]" id="is_rating" value="1"<?php echo get_checked('1', $wset['is_rating'])?>>
<label class="form-check-label" for="is_rating">별점 표시</label>
</div>
</div>
</div>
이런식으로 만들어서
<?php
// 별점 평균을 가져오는 SQL 쿼리
$sql = "SELECT AVG(rating) AS avg_rating FROM {$g5['write_prefix']}{$bo_table} WHERE wr_id = '{$wr_id}'";
$result = sql_fetch($sql);
$avg_rating = $result['avg_rating'] ? number_format($result['avg_rating'], 1) : '0';
// 별점 출력
if ($wset['is_rating']) {
echo '<div class="rating">';
echo '평균 별점: ' . $avg_rating . '점';
echo '</div>';
}
?>
이런식으로 출력할려고 하는데
widget 상단에
<?php
// 별점 집계 쿼리 (해당 게시물의 댓글 중 별점 데이터가 있는 것들을 집계)
$sql = " SELECT COUNT(*) AS cnt,
SUM(rating_main) AS total_main,
SUM(rating_support) AS total_support,
SUM(rating_story) AS total_story,
SUM(rating_quality) AS total_quality,
SUM(rating_popularity) AS total_popularity,
SUM(rating_writing) AS total_writing
FROM g5_star_rating
WHERE bo_table = '{$bo_table}'
AND wr_parent = '{$wr_id}' ";
$row = sql_fetch($sql);
// 별점 데이터가 하나라도 있으면 평균 계산, 없으면 기본값 "0.0"
if ($row['cnt'] > 0) {
// 0~60 점 범위 → 10점 만점으로 환산 (6으로 나누고 소수점 한자리)
$avg_rating_main = round(($row['total_main'] / $row['cnt']) / 6, 1);
$avg_rating_support = round(($row['total_support'] / $row['cnt']) / 6, 1);
$avg_rating_story = round(($row['total_story'] / $row['cnt']) / 6, 1);
$avg_rating_quality = round(($row['total_quality'] / $row['cnt']) / 6, 1);
$avg_rating_popularity = round(($row['total_popularity'] / $row['cnt']) / 6, 1);
$avg_rating_writing = round(($row['total_writing'] / $row['cnt']) / 6, 1);
} else {
$avg_rating_main = "0.0";
$avg_rating_support = "0.0";
$avg_rating_story = "0.0";
$avg_rating_quality = "0.0";
$avg_rating_popularity = "0.0";
$avg_rating_writing = "0.0";
}
$num_evaluations = $row['cnt'];
// 전체 평균 평점 (6개 항목의 평균의 평균)
$sum_avg = ((float)$avg_rating_main + (float)$avg_rating_support + (float)$avg_rating_story + (float)$avg_rating_quality + (float)$avg_rating_popularity + (float)$avg_rating_writing);
$overall_avg = round($sum_avg / 6, 1);
?>
쿼리문 다 다 넣어놨는데도 그 값을 못불러오더라구요.
이래저래 테스트 해보니까 bo_table과 wr_id를 제대로 못들고 오는것 같던데
혹시 제가 놓친 부분이 있는걸까요?
파고 파고 파도 참 어렵네요 ㅠㅠ
답변 2
WHERE bo_table = '{$bo_table}'
AND wr_parent = '{$wr_id}' ";
->
WHERE bo_table = '{$list[$i]['bo_table']}'
AND wr_parent = '{$list[$i]['wr_id']}' ";
우선 SQL 쿼리하실때 관련 변수부터 찍어보세요.
안나오는 변수가 있는지