답변 8개
이왕 체크하는거 값이 존재하는지 여부를 먼저 확인해야 오류가 안날겁니다.
isset을 이용해서 변수가 존재하고 문자열인지 판단해서 '홍길동' 또는 '' 로 값을 셋팅하는게
좀더 안정적인 방법입니다.
</p>
<p>$str = (isset($list[$i]['wr_1']&&is_string($list[$i['wr_1'])):"홍길동":"";</p>
<p>echo $str;</p>
<p>
답변에 대한 댓글 5개
수정이안되네요
$str = (isset($list[$i]['wr_1']&&is_string($list[$i['wr_1'])):"홍길동":"";
에서 : 앞에것을 ? 로
$str = ( isset($list[$i]['wr_1']) && is_string($list[$i['wr_1']) )?"홍길동":"";
입니다.
구문은 다음과 같습니다.
<td class="td_wr_1">
<?php
if(strtotime($list[$i]['wr_1'] ) - G5_SERVER_TIME > (86400 * 1)){
echo $list[$i]['wr_1'] ;
} else if(strtotime($list[$i]['wr_1'] ) - G5_SERVER_TIME < (86400 * 1)){
echo '마감임박';
} else{
echo $list[$i]['wr_1'] ;
}
?>
</td>
여기에 어떻게 넣어야 하는지요?
답변하다가 누락한게 하나더 있었네요
) 를 빠뜨려서 오류가 났겠네요. 미안합니다.
$str = ( isset($list[$i]['wr_1']) && is_string($list[$i['wr_1']) )?"홍길동":"";
로 다시 해보세요
로직은 if문이 필요없는 3항
$변수 = (비교) ? 참 : 거짓 ;
의 구조이고
비교의 내용은
1. 변수가 존재하는지
&&
2. 문자열인지
참은 "홍길동"
거짓은 "" 공백
참과 거짓 값중에 하나가
변수에 대입
되는 구조입니다.
댓글을 작성하려면 로그인이 필요합니다.
많은 분께 감사드립니다.
데이터 양이 양이 많지 않으므로 그냥 수작업(?)으로 하여야 할 것 같습니다.
좋은 저녁 되시고 복 많이 벋으십시오~^^)
댓글을 작성하려면 로그인이 필요합니다.
strtotime($list[$i]['wr_1']) 부분에서 날짜를 나타내지 않는 문자열이면 반환값이 false 입니다 문자열이 아닐 때 조건 if(strtotime($list[$i]['wr_1'] ) - G5_SERVER_TIME < (86400 * 1)) 는 if(false - G5_SERVER_TIME < (86400 * 1)) 이므로 항상 참입니다.
댓글을 작성하려면 로그인이 필요합니다.
if(!empty($list[$i]['wr_1']) && !is_numeric($list[$i]['wr_1'])) echo "홍길동";
답변에 대한 댓글 4개
많은 분들이 답해 드리고 있는 것들이 안되고 있는지 말이죠.
alert("값 : ".$list[$i]['wr_1']);
또는
alert("값 : ".gettype($list[$i]['wr_1']));
구문은 다음과 같습니다.
<td class="td_wr_1">
<?php
if(strtotime($list[$i]['wr_1'] ) - G5_SERVER_TIME > (86400 * 1)){
echo $list[$i]['wr_1'] ;
} else if(strtotime($list[$i]['wr_1'] ) - G5_SERVER_TIME < (86400 * 1)){
echo '마감임박';
} else if(!empty($list[$i]['wr_1']) && !is_numeric($list[$i]['wr_1']))
echo "채용시";
} else{
echo $list[$i]['wr_1'] ;
}
?>
</td>
글쓰기를 할 때 여분필드 wr_1 에 '채용시'라고 넣은 곳이 '채용시' 라고 출력되기를 바라는데...
그냥 '마감임박'이라고 출력되고 있습니다.
원하시는 결과를 제대로 알려 주시죠.
하루가 지나면 그대로 출력한다.
하루가 지나지 않았으면 '마감임박'이라 출력한다.
그 다음은 어떻게 되죠?
현재 if문이 조건으로 분기될 수 없는 조건을 사용하므로 원하시는 값을
얻고 있지 못한겁니다.
댓글을 작성하려면 로그인이 필요합니다.
is_string 도 좋은데.. 숫자값으로만 된거는 무시해야하는 경우도 있다면 is_numeric() 이랑 empty() 로 체크 하면 좋겠네요.
빈공백이 아니고, 숫자가 아니면 문자겠죠?
</p>
<p>if (!empty($list[$i]['wr_1']))</p>
<p>{</p>
<p>if(!is_numberic($list[$i]['wr_1']))</p>
<p> {</p>
<p> echo "홍길동";</p>
<p> }</p>
<p>}</p>
<p>
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
is_string() 함수를 사용하면됩니다.
http://php.net/manual/kr/function.is-string.php
if( is_string($list[$i]['wr_1']) == true ) echo '홍길동';
$test = 1234;
if( is_string($test) ) { echo 'String'; } else { echo 'String 아님'; }
이렇게 사용이됩니다
true는 if 에서 존재하는 것으로 인식합니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
잘은 모르지만 한번 해보세요
if($list[$i]['wr_1'] != 'number') { echo '홍길동';
}
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인