이게 왜 그럴까요?

이게 왜 그럴까요?

QA

이게 왜 그럴까요?

본문

     포인트가 0보다 작으면 빨간색으로 그렇지 않으면 양수값이면 녹색으로 표시하라고 한건데...

음수도 녹색으로 표시하네요,,,

 

      <? if($mb[mb_point] < 0) $red="color:red;"; else $red='color:green;font-size:14px'; ?>
            
            <span style="<?= $red ?>"

>
            <? if ($is_admin || $member[mb_id]==$list[$i][mb_id]){
$mb = get_member($list[$i][mb_id], 'mb_point'); 
 echo number_format($mb[mb_point]);
}?> 
            </span>

 

 

 

이 질문에 댓글 쓰기 :

답변 4


  <?php
  $mb = get_member($list[$i][mb_id], 'mb_point');
  if($mb[mb_point] <= 0) $red='color:red;'; else $red='color:green;font-size:14px';
  ?>
  <span style="<?php echo $red ?>">
  <?php
  if ($is_admin || $member[mb_id]==$list[$i][mb_id]){
   echo number_format($mb[mb_point]);
  }
  ?>
  </span>

 <? if(intval($mb[mb_point]) < 0) {$red="color:red;"; } else{ $red='color:green;'} $red .='font-size:14px'; ?>

로 변경해보세요


ㅎㅎ 괜찮습니더
숫자를 비교할때 참고하시라고 intval
로 형변환 했던거구요
한줄 if문은 단일구조일때만 잘 작동합니다
굳이 한줄로 하시려면 중괄호{}로 감싸야죠
이번껀의 적폐(?)는 중괄호 누락입니다

위에 작업 하시기 바로 위에

var_dump($mb[mb_point]);

으로 실제 어떤 값이 나오는지 확인 해보셔야 할듯 합니다.

$mb = get_member($list[$i][mb_id], 'mb_point'); 

이 실행되기 이전에

$mb[mb_point] 를 체크하니 당연히 $mb 변수가 있기 전이기 때문에

빈값이 들어가니까 그렇게 되는것같네요

결론은 코드 순서가 지금 안맞아요

 

간단하게 설명하자면
<? if ($is_admin || $member[mb_id]==$list[$i][mb_id]){
$mb = get_member($list[$i][mb_id], 'mb_point'); 

if($mb[mb_point] < 0) $red="color:red;"; else $red='color:green;font-size:14px';
 echo number_format($mb[mb_point]);
}?> 
이렇게 $mb가 선언된 이후에 코드를 넣어야합니다.

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

회원로그인

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