넘버포맷 질문 드립니다.
본문
안녕하세요. 제가 보드 스킨에
<td style="text-align:right;">$<?php echo number_format($list[$i][wr_3], 2); ?></td>
<td style="text-align:right;">$<?php echo number_format($list[$i][wr_4], 2); ?></td>
<td style="text-align:right;">$<?php echo number_format($list[$i][wr_5], 2); ?></td>
이렇게 3개의 필드에 숫자(가격)를 넣어서 리스트 페이지에서 값을 불러왔습니다.
그런데 3개 필드중에서 가격이 안들어가는 곳도 있는데 가격이 0이라도 안들어가면
$Warning: number_format() expects parameter 1 to be double, string given in /home/stour/public_html/member/skin/board/ledger/list.skin.php on line 199
이렇게 메시지나 리스트 페이지에서 나옵니다.
필드에 값이 없으면 자동으로 0 값을 넣도록 할 수 없을까요? 그래서 위의 메세지가 안나오게요..
고수님들 부탁 드립니다.
답변 2
number_format의 경우 0 이거나 값이 없을 경우 0으로 인식해서 출력을 해줍니다.
아마 다른부분이 에러이지 않을까 합니다. 예상으로는 $i 값이 배열을 넘어서 접근했을것 같습니다.
그래도 우선 요청하신 부분은
<?php echo number_format($list[$i][wr_5], 2); ?> 부분을
<?php if($list[$i][wr_5]) echo number_format($list[$i][wr_5], 2); else echo "0.00" ?>
이런식으로 수정하시면 될 듯 합니다. 테스트 한번 해보세요
필드에 값이 없으면 자동으로 0 값을 넣도록 -->
number_format 사용전에 추가
if(!$list[$i][wr_3]) $list[$i][wr_3] =0;
if(!$list[$i][wr_4]) $list[$i][wr_4] =0;
if(!$list[$i][wr_5]) $list[$i][wr_5] =0;