CI 묻고 답하기

제목 Database Error - 인스톨후 [초보]
글쓴이 P 작성시각 2012/03/17 08:57:12
댓글 : 9 추천 : 0 스크랩 : 0 조회수 : 32781   RSS
인스톨은 설명서 대로 하고 config.php 에서 처음엔 "PATH_INFO" 로 돼있을때는 홈페이지만 나오고 그위에 링크를 아무리 눌러도 페이지가 변하질 안아서... AUTO 로도 바꿔보고 QUERY_STRING, REQUEST_URI, ORIG_PATH_INFO 로 다 한번씩 해봐도 이 databse 문제가 없어지질 않네요... 

database 는 codeigniter.sql 파일로 제데로 import 해서 만들고 연결도 제대로 한거 같은데... 뭐가 문젠지 모르겠습니다. 

사이트: http://korean.losangelesimmigration.com

에러 메세지
A PHP Error was encountered

Severity: Notice

Message: Trying to get property of non-object

Filename: controllers/board.php

Line Number: 28
A PHP Error was encountered

Severity: Notice

Message: Trying to get property of non-object

Filename: controllers/board.php

Line Number: 29
A PHP Error was encountered

Severity: Notice

Message: Trying to get property of non-object

Filename: controllers/board.php

Line Number: 30
A PHP Error was encountered

Severity: Notice

Message: Trying to get property of non-object

Filename: controllers/board.php

Line Number: 31
A PHP Error was encountered

Severity: Notice

Message: Trying to get property of non-object

Filename: controllers/board.php

Line Number: 32
A PHP Error was encountered

Severity: Notice

Message: Trying to get property of non-object

Filename: controllers/board.php

Line Number: 33
A PHP Error was encountered

Severity: Notice

Message: Undefined offset: 1

Filename: controllers/board.php

Line Number: 40
A PHP Error was encountered

Severity: Notice

Message: Undefined offset: 2

Filename: controllers/board.php

Line Number: 41
A PHP Error was encountered

Severity: Notice

Message: Undefined offset: 3

Filename: controllers/board.php

Line Number: 42
A Database Error Occurred

Error Number: 1064

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE (is_delete='N' and original_no='0')' at line 2

SELECT count(no) as cnt WHERE (is_delete='N' and original_no='0')


 다음글 [초보]라우팅질문 (6)
 이전글 CI와 궁합이 잘 맞는 위키위키는 어떤게 있을까요?

댓글

criuce / 2012/03/18 14:06:51 / 추천 0
 original_no가 int 형인데 '0' 이렇게 문자열로 비교하셔서 생기는 에러 아닐까요?
P / 2012/03/19 05:35:42 / 추천 0
 아.. MYSQL 가서 Field structure 보니까 original_no 의 type 이 int(11) 이라고 나오네요.  이게 문제라면.. 어디가서 어떻게 고쳐야 하죠?  데이타베이스는 잼뱅이라... ^^  
변종원(웅파) / 2012/03/19 14:44:37 / 추천 0
주소와 연결된 xml에서 테이블 정보를 가져와서 상수로 선언하여 쓰게 되어 있습니다.

주소부분이 문제가 되서 xml에서 정보를 못가져오는 것 같네요.

data 디렉토리에 xml파일이 존재하는지 확인해보시고
route.php 파일에 있는 주소도 확인해보세요.

http://cikorea.net/qna/list  -> xml에서 보드명이 qna인 라인을 찾아 상수로 선언
각 모델에서는 상수를 사용.
route.php에서 $route['qna/(:any)'] = "board/index"; 형태로 선언하여 사용.


예전에 위와 같이 처리를 했고 지금은 board 컨트롤러 생성자에서


  // SELECT `name`, name_en FROM board_list ORDER BY `name`
  $this->db->select('`name`, name_en');
  $this->db->from('board_list');
  $this->db->order_by('name');
  $rs =$this->db->get();
  $this->board_list = array();
  foreach($rs->result() as $row) {
   $this->board_list[str_replace('board_', '', $row->name_en)] = $row->name;
  }
  // 게시판 리스트 가져오기 끝

  $rew = $this->db->get_where('board_list', array('name_en'=>'board_'.$this->uri->segment(1)));
  $item = $rew->row();
  define('MENU_ID', $item->no);
  define('MENU_SKIN', $item->skin);
  define('MENU_BOARD_NAME', $item->name);
  define('MENU_BOARD_NAME_EN', $item->name_en);
  define('MENU_BOARD_PERM', $item->permission);
  define('MENU_BOARD_DETAIL_SETTING', $item->detail_setting);
위와 같이 상수로 선언합니다. board_list 테이블에 값이 있는지 보세요.
P / 2012/03/20 10:19:28 / 추천 0
 웅파님,

board 컨트롤러 에서 말씀하신 부분은 똑같이 선언이 된거 같아요. 밑에 코드가 제꺼에서 카피한거고여.

  // 게시판 리스트 가져오기 by 불의회상 110104
  // SELECT `name`, name_en FROM board_list ORDER BY `name`
  $this->db->select('`name`, name_en');
  $this->db->from('board_list');
  $this->db->order_by('name');
  $rs =$this->db->get();
  $this->board_list = array();
  foreach($rs->result() as $row) {
   $this->board_list[str_replace('board_', '', $row->name_en)] = $row->name;
  }
  // 게시판 리스트 가져오기 끝

  $rew = $this->db->get_where('board_list', array('name_en'=>'board_'.$this->uri->segment(1)));
  $item = $rew->row();
  define('MENU_ID', $item->no);
  define('MENU_SKIN', $item->skin);
  define('MENU_BOARD_NAME', $item->name);
  define('MENU_BOARD_NAME_EN', $item->name_en);
  define('MENU_BOARD_PERM', $item->permission);
  define('MENU_BOARD_DETAIL_SETTING', $item->detail_setting);


그리고 db 에서 board_list 에 값이 있는게... 무슨말인지 잘 이해가 안가... 그냥 board_list 데이타 베이스 스크린 샷 떴습니다...^^;



P / 2012/03/20 10:21:55 / 추천 0
 
koike / 2012/03/20 11:40:08 / 추천 0
 근데 ... 저도 이 문제 있는대요 .. notice 에 공지를 보려고 하는대 왜 borad_list  FROM 을 가져오는건가요?

아 그리고, db 선언부 파일이 어디쯤에 있나여 ? 항상 불러온다고 팁에서 읽었는데요, 그 항상 불러 들이는 부분이 

어딘지 궁금합니다 

변종원(웅파) / 2012/03/20 13:33:06 / 추천 0
 board_list가 비어 있어서 그렇네요
변종원(웅파) / 2012/03/20 13:40:38 / 추천 0
 INSERT INTO `board_list` (`no`, `skin`, `name`, `name_en`, `enable`, `permission`, `category_word`, `detail_setting`, `reg_date`) VALUES(1, 'default', 'CI 뉴스', 'board_news', 'Y', '1|1|3|7', '', '', '2009-06-29 11:32:10');
INSERT INTO `board_list` (`no`, `skin`, `name`, `name_en`, `enable`, `permission`, `category_word`, `detail_setting`, `reg_date`) VALUES(2, 'default', '공지사항', 'board_notice', 'Y', '1|1|3|15', '', '', '2009-06-29 11:33:10');
INSERT INTO `board_list` (`no`, `skin`, `name`, `name_en`, `enable`, `permission`, `category_word`, `detail_setting`, `reg_date`) VALUES(3, 'default', '자유게시판', 'board_free', 'Y', '1|1|3|3', '', '', '2009-06-29 12:49:35');
INSERT INTO `board_list` (`no`, `skin`, `name`, `name_en`, `enable`, `permission`, `category_word`, `detail_setting`, `reg_date`) VALUES(11, 'default', 'html5, css3', 'board_html5', 'Y', '1|3|3|3', '', '', '0000-00-00 00:00:00');
INSERT INTO `board_list` (`no`, `skin`, `name`, `name_en`, `enable`, `permission`, `category_word`, `detail_setting`, `reg_date`) VALUES(4, 'default', 'TIP게시판', 'board_tip', 'Y', '1|1|3|3', '', '', '2009-07-07 22:35:39');
INSERT INTO `board_list` (`no`, `skin`, `name`, `name_en`, `enable`, `permission`, `category_word`, `detail_setting`, `reg_date`) VALUES(5, 'default', '강좌게시판', 'board_lecture', 'Y', '1|1|3|3', '', '', '2009-07-07 22:35:39');
INSERT INTO `board_list` (`no`, `skin`, `name`, `name_en`, `enable`, `permission`, `category_word`, `detail_setting`, `reg_date`) VALUES(6, 'default', 'CI 묻고 답하기', 'board_qna', 'Y', '1|1|3|3', '', '', '2009-07-07 22:35:39');
INSERT INTO `board_list` (`no`, `skin`, `name`, `name_en`, `enable`, `permission`, `category_word`, `detail_setting`, `reg_date`) VALUES(7, 'default', 'CI 코드', 'board_source', 'Y', '1|1|3|3', '', '', '2009-07-07 22:35:39');
INSERT INTO `board_list` (`no`, `skin`, `name`, `name_en`, `enable`, `permission`, `category_word`, `detail_setting`, `reg_date`) VALUES(8, 'default', '일반자료실', 'board_file', 'Y', '1|1|3|3', '', '', '2009-07-07 22:35:39');
INSERT INTO `board_list` (`no`, `skin`, `name`, `name_en`, `enable`, `permission`, `category_word`, `detail_setting`, `reg_date`) VALUES(9, 'default', '포럼개발자', 'board_ci', 'Y', '7|7|7|7', '', '', '2009-07-07 22:39:59');
INSERT INTO `board_list` (`no`, `skin`, `name`, `name_en`, `enable`, `permission`, `category_word`, `detail_setting`, `reg_date`) VALUES(10, 'default', '운영자', 'board_su', 'Y', '15|15|15|15', '', '', '2009-07-07 22:39:59');

위 sql 문을 mysql 콘솔에서 실행하시거나 phpmyadmin 같은데서 실행시켜서 데이터를 넣으세요.
그러면 정상작동할 겁니다.
 
koike / 2012/03/20 14:29:28 / 추천 0
 아 카테고리 문제 였군요~ ㅎ