질문 Q #11167
select시 값이 없을때 처리하는법좀 알려주세요
지침 2014-02-21 10:09:59
$sql = "
   select idx from aa where Aidx='123' and Bidx='456';
";
 
$re = $this->db->query($sql)->row();
$B= $re->idx;

쿼리는 이렇습니다. 셀렉트시 값이 있으면 $B에 들어가서 정상적으로 처리가 되죠
그런데 셀렉트시 값이 없으면 정상처리가 되지않고 오류가 뜹니다.ㅁ

: Trying to get property of non-object
이런 오류가 뜹니다. 그래서 제가 값이 없을땐 공백이나 0을 뽑아낼수없을까라는 생각이 들었습니다.
방법이 없을까요 
값이 없을때 공백을 뽑아내는 방법이 없을까요

 

답변 6
#1 변종원(웅파) 2014-02-21 10:31:16
$count = $this->db->query($sql)->num_rows();

$count가 0일 경우는 idx가 없는 경우니 빈값을 넣어주면 되겠죠
#2 지침 2014-02-21 10:47:54
 웅파// 웅파님 답변 감사합니다.

조언을 듣고 
$data=array();
$re = $this->db->query($sql);
if ($re->num_rows() > 0){
foreach($re->result() as $val){
$qq= array(
"a"    => $val->a
);
array_push($data, $qq);
}
return $data;
}

이렇게 처리를 하니 값이 없을땐 처리 되지 않고 정상적으로 작동 되더군요.
감사합니다
 

#3 변종원(웅파) 2014-02-21 11:28:18
지침/ 빙고~~~~ 수고하셨습니다. ^^ 
#4 지침 2014-02-21 13:58:11
 웅파/ 고맙습니다 ㅎㅎ

한가지 더 궁금한게 생겼는데
모델에선 저렇게 처리하면 정상 작동 됬지만
이젠 뷰에서 
<?php  foreach($ggg as $val){  ?>
<?= $val['a']?>
<?= $val['b']?>
<?= $val['c']?>
<?php } ?>

이렇게 뽑을시 값이 없을떄 오류가 발생하더군요.. 
이럴땐 어떻게 처리해야되죠?

#5 한대승(불의회상) 2014-02-21 14:03:31
지침// 모든걸 하나하나 알려드릴순 없습니다.
가르쳐 주는것 보다 고민하고 스스로 길을 찾는게 자신에게 더 남게 된답니다.

<?=isset($val['a']) ? $val['a'] : ''?>

#6 지침 2014-02-21 15:17:50
한대승//
감사합니다. isset써서 하니 쉽게 해결할수있었습니다.

혼자 독학할려니 힘든점이많아 이렇게 질문을 올려보았습니다..
 스스로 해결하도록 더 열심히하겟습니다