CI 묻고 답하기

제목 foreach 관련 질문입니다
글쓴이 함박눈 작성시각 2016/01/18 13:11:54
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 13351   RSS

모델쪽에 foreach문에서 continue를 사용하여 db에 필드값이 없을 경우  다음 값으로 넘어가게끔 하였습니다 

그런데 웹에서 에러가 뜨고 sql을 확인해보니 값이 없는 부분에서는 foreach문이 돌지 않는거 같아요 

SELECT COUNT(is_num) as num_value FROM user_moe003_022.ci_substance 

SELECT COUNT(is_num) as num_value FROM user_(계정명이 안들어오는 부분).ci_substance 

위의 쿼리문처럼 continue가 안듣고 필드값이 없는 부분에서 에러가 납니다ㅠ 

이런 경우에 continue가 돌게 하려면 어떻게 해야 하나요? continue말고 다른 방법이 있는지도 알려주세요ㅠ

 

foreach문에서 continue를 적용한 소스는 아래와 같습니다

 

foreach ($query->result_array() as $row){

if(@!$row[cs_db]) continue;      //continue문 적용한 부분

$row['my_substance_count'] = $this->my_substance_count($row[cs_db]); //$row를 넘겨주는 함수$row['substance_count'] = $this->get_substance_count();

$result['member_use_m'][] = $row;}return $result;}

}

return $result;        

}

 

 

 

 다음글 책에 ajax 예제 왜 작동이안되는지좀 봐주세요.(수정... (8)
 이전글 DB 질문입니다. (5)

댓글

한대승(불의회상) / 2016/01/18 13:45:17 / 추천 0

아래 처럼 바꿔 보세요.

if(!isset($row['cs_db']) && !$row['cs_db']) continue;  

 

함박눈 / 2016/01/18 14:08:54 / 추천 0

//한대승(불의회상)

답글주신 소스코드를 적용해보았는데 아래와 같은 에러가 나네요

Parse error: syntax error, unexpected T_BOOLEAN_OR, expecting ',' or ')' in

그리고 isset()함수를 왜 써야하는지 모르겠어요 isset()은 bool타입으로 true나 false를 반환하잖아요...?

혹시 이 방법말고 다른방법 있을까요?ㅠ 

한대승(불의회상) / 2016/01/18 15:06:30 / 추천 0

syntax 에러가 났으니 일단 그걸 먼저 해결하세요.

isset() 함수는 $row에 'cs_db' 로 인덱싱된 배열객체가 있는지 확인 하는겁니다.

함박눈 / 2016/01/18 15:33:36 / 추천 0

//한대승(불의회상)

syntax 에러를 해결하기 위해 구문을 조금 변경했습니다.

if(!isset($row['cs_db']))        continue;    

이렇게요. syntax 에러는 없어졌지만 이전과 같은 에러가 database 에러가 나네요ㅠ

이전에 작성했던 소스는 if문을 사용했었습니다.

if(!$row[cs_db])        continue;

$row['cs_db']가 없으면 건너뛰게끔 하려구요. 그런데 여전히 continue가 먹질않고 에러가 납니다.

혹시 continue말곤 다른 방법은 없을까요?

한대승(불의회상) / 2016/01/18 16:06:32 / 추천 0

var_dump로 $row 에 값이 어떤식으로 들어가는지 확인 해 보세요.