제목 | 라이브러리 사용시 배열부분 질문드립니다. | ||
---|---|---|---|
글쓴이 | 뽁쓰 | 작성시각 | 2010/04/29 14:34:09 |
|
|||
라이브러리를 사용하고 있는데 자꾸 에러가 나서 질문드립니다. foreach($query->result_array() as $rows) { } A PHP Error was encounteredSeverity: Notice Message: Undefined index: 04-22 Filename: libraries/qrstatic.php Line Number: 27 아래와 같은 에러가 출력되는데 뭐가 문제일까요? |
|||
다음글 | db query 관련하여... (2) | ||
이전글 | 안녕하세요 ~ (8) | ||
변종원(웅파)
/
2010/04/29 14:57:55 /
추천
0
|
뽁쓰
/
2010/04/30 15:31:34 /
추천
0
일반 코딩에서는 저렇게 해도 문제가 없었는데
codeigniter에서는 배열의 키값이 없을때에는 에러가 나는군요 예를들어 저경우에는 a값이 초기에는 없기때문에 a = a + 1 를 하면 일반코딩에서는 에러가 안나지만 codeigniter에서는 a가 초기에 null이기때문에 에러가 나는거였군요.. 웅파님 감사합니다 ^^ |
kirrie
/
2010/04/30 15:53:48 /
추천
0
php의 에러 리포팅은 에러를 몇개의 단계로 나누어 표시합니다.
notice, warning, error, fatal 등등... (자세히는 기억 안남;) warning까지는 그냥 경고수준입니다. 에러는 아니지만 그렇게 하면 안된다는거죠. 이건 error_reporting함수를 이용해서 설정을 변경해줌으로써 표시되게 할 수도 안되게 할 수도 있습니다. php는 변수선언을 강제하지 않기 때문에 $arr['k'] = 'aaa'; 라고 선언해버려도 동작하지만 이 경우에 notice 에러가 발생합니다. 왜냐하면 $arr는 array형으로 선언이 되어있지 않기 때문입니다. 이 문제를 해결하려면 1. index.php를 열면 error_reporting이 있는데 이걸 error_reporting(0); 으로 설정합니다. 이럼 에러메세지가 안나옵니다. (보통 publish된 사이트는 이렇게 운용합니다.) 아니면 error_reporting(E_ALL ^ E_NOTICE)로 해 놓으면 notice는 안나오고 나머지 에러는 display합니다. 2.혹은 먼저 변수를 선언해줍니다. 작성하신 코드라면 foreach구문 바로 위에 $tempConnList = array(); 만 넣어주시면 정상적으로 동작할 것입니다. |
변종원(웅파)
/
2010/04/30 16:12:05 /
추천
0
codeigniter는 기본셋팅이 모든 에러, notice를 뿌리게 되어있습니다. kirrie님 말씀대로 index.php파일 첫머리에 선언되어 있지요.
1번 방법보다는 저는 2번 방법을 추천합니다. ^^ |
$tempConnList[$connZone] = $tempConnList[$connZone] + $rows['CT']; <--이거인데
당연히 에러를...
$connZone을 배열의 키로 하시려면......................
(원래 php 기본에 관련된 답변은 안드리지만....)
$tempConnList= array();
foreach(){
$tempConnList = array($connZone=>$value);
}
한번 돌려보세요.