전체회원포인트 배수로 보여주기
본문
아래는 전체회원의 포인트합을 나타내는 소스인데
전체회원포인트합에 곱하기100을 해서 보여주고싶습니다.
어떻게 해야할지해서 여쭈어봅니다.
<?php
if (isset($mb['mb_id']) && $mb['mb_id']) {
echo ' <span class="btn_ov01"><span class="ov_txt">' . $mb['mb_id'] .' 님 포인트 합계 </span><span class="ov_num"> ' . number_format($mb['mb_point']) . '점</span></span>';
} else {
$row2 = sql_fetch(" select sum(po_point) as sum_point from {$g5['point_table']} ");
echo ' <span class="btn_ov01"><span class="ov_txt">EVENT포인트</span> <span class="ov_num">'.number_format($row2['sum_point']).'점 CLICK!</span></span>';
}
?>
답변 3
COALESCE(SUM(po_point), 0)을 사용하여 SUM(po_point)가 NULL일 경우
기본값 0을 반환하도록 하여 undefined index 오류를 방지하고,
기존 방식에서 po_point 데이터가 없을 경우 발생할 수 있는 NULL * 100 연산 오류를 예방.
또한, SQL 문을 대문자로 표준화하여 가독성을 향상시켰으며,
number_format($sum_point)을 유지하여 3자리 단위마다 ,를 추가하여 가독성을 높임.
이로써 오류 없이 안정적으로 전체 회원 포인트 합계를 100배로 변환하여 출력할 수 있으며,
가독성과 유지보수성을 고려한 최적의 코드 개선 방안이 될 것입니다.
*아래와 같은 수정을 참고하시면 어떨까 싶습니다.
<?php
$row2 = sql_fetch("SELECT COALESCE(SUM(po_point), 0) AS sum_point FROM {$g5['point_table']}");
$sum_point = $row2['sum_point'] * 100;
echo '<span class="btn_ov01"><span class="ov_txt">EVENT포인트</span> <span class="ov_num">' . number_format($sum_point) . '점 CLICK!</span></span>';
?>
$row2 = sql_fetch(" select sum(po_point) as sum_point from {$g5['point_table']} ");
$sum_point=$row2['sum_point']*100;
echo ' <span class="btn_ov01"><span class="ov_txt">EVENT포인트</span> <span class="ov_num">'.number_format($sum_point).'점 CLICK!</span></span>';
<?php
if (isset($mb['mb_id']) && $mb['mb_id']) {
echo ' <span class="btn_ov01"><span class="ov_txt">' . $mb['mb_id'] .' 님 포인트 합계 </span><span class="ov_num"> ' . number_format($mb['mb_point'] * 100) . '점</span></span>';
} else {
$row2 = sql_fetch(" select sum(po_point) as sum_point from {$g5['point_table']} ");
echo ' <span class="btn_ov01"><span class="ov_txt">EVENT포인트</span> <span class="ov_num">'.number_format($row2['sum_point'] * 100).'점 CLICK!</span></span>';
}
?>
!-->