| 제목 | 쿼리결과가 DB와 달라요 | ||
|---|---|---|---|
| 카테고리 | CI 2, 3 | ||
| 글쓴이 | 니로 | 작성시각 | 2017/02/06 10:32:46 | 
| 
                         | 
                |||
| 
                         SELECT t1.cate_id lev1, t1.cate_name name, t1.cate_order corder, t2.cate_id lev2, t2.cate_name name, t2.cate_order corder, t3.cate_id lev3, t3.cate_name name, t3.cate_order corder FROM category AS t1 LEFT JOIN category AS t2 ON t2.cate_upid = t1.cate_id LEFT JOIN category AS t3 ON t3.cate_upid = t2.cate_id WHERE t1.cate_upid = '' order by 3,6,9 
 계층쿼리를 대충 짰는데요 
 db에서 검색하면 t2,t3의 cate_id,name,corder모두 잘나옵니다 빈건 null로 표시되구요 근데 ci에서 
 $q = "SELECT t1.cate_id lev1, t1.cate_name name, t1.cate_order corder, " ."t2.cate_id lev2, t2.cate_name name, t2.cate_order corder, " ."t3.cate_id lev3, t3.cate_name name, t3.cate_order corder " ."FROM category AS t1 " ."LEFT JOIN category AS t2 ON t2.cate_upid = t1.cate_id " ."LEFT JOIN category AS t3 ON t3.cate_upid = t2.cate_id " ."WHERE t1.cate_upid = '' " ."order by 3,6,9 "; $query = $this->db->query($q); echo $this->db->last_query(); 
 이렇게해서 쿼리찍어서 db에도 돌려보고 했는데 result_array로 만들어서 출력하면 t2,t3의 lev2,3 값만 나오고 나머진 타이틀 조차 만들어지지 않아요 
[0] => Array
        (
            [lev1] => 2
            [name] => 
            [corder] => 
            [lev2] => 7
            [lev3] => 
        )
 이런식으로 나오는데.. 왜그런걸가요 
  | 
                |||
| 다음글 | 로그인 세션시간제한 (1) | ||
| 이전글 | codelgniter + mssql 목록 처리 어떤 방... (2) | ||
| 
                             
                                kaido
                                /
                                2017/02/06 10:44:30 /
                                추천
                                0
                             
                             | 
                    
| 
                             
                                니로
                                /
                                2017/02/06 10:48:35 /
                                추천
                                0
                             
                            db는 다를수가없어요 방금 db에서 제가 insert로 값을넣은거라.. 없으면 아무것도 안나와야하는데.. 편집기랑 프로젝트 디비 확인해보아도 똑같습니다  | 
                    
| 
                             
                                한대승(불의회상)
                                /
                                2017/02/06 10:59:52 /
                                추천
                                0
                             
                            
                                @니로 last_query()의 쿼리랑 쿼리 편집기 쿼리랑 동일한데 결과 값이 다르다면 할 수 있는게 아무것도 없습니다.
                             
                         | 
                    
| 
                             
                                알브레드
                                /
                                2017/02/06 11:00:55 /
                                추천
                                0
                             
                            음... 혹시 DB 캐시 사용을 하시는지 궁금하네요.  | 
                    
| 
                             
                                니로
                                /
                                2017/02/06 11:09:03 /
                                추천
                                0
                             
                            
                                알브레드 //db캐시는 어떻게 확인해보죠?
                             
                         | 
                    
| 
                             
                                알브레드
                                /
                                2017/02/06 11:12:36 /
                                추천
                                0
                             
                            니로 // 모르시는거 보면 적용을 안하신거 같은데.. 이상하네요;;; http://www.ciboard.co.kr/user_guide/kr/database/caching.html  | 
                    
| 
                             
                                니로
                                /
                                2017/02/06 11:12:41 /
                                추천
                                0
                             
                            허.. 해결했습니다... 약명으로 준 이름이 t1,t2 cate_name 이라면 모두 동일하게 name으로 적어줘서 쿼리가 이상해졌네요 ; 
 name약명을 name1, name2, name3 으로 구분해주니 되네요 ㅠ_ㅠ 이런.. order도 마찬가지구요,..ㅎ;  | 
                    
| 
                             
                                미나리
                                /
                                2017/02/06 11:12:55 /
                                추천
                                0
                             
                            @니로 t2, t3의 name, corder 명칭을 바꿔서 해보세요. name2, corder3 이런식으로 지금은 리턴받은 name, order 값은 마지막에 작성된 t3.name, t3.corder 값으로 리턴받았을꺼에요...  | 
                    
| 
                             
                                니로
                                /
                                2017/02/06 11:14:13 /
                                추천
                                0
                             
                            
                                미나리//맞습니다 그문제였습니다! ㅋㅋㅋ 이걸 놓치다니 ;ㅠㅠ
                             
                         | 
                    
| 
                             
                                알브레드
                                /
                                2017/02/06 11:32:04 /
                                추천
                                0
                             
                            
                                니로 // 해결되셨다니 다행이네요. 별칭이 같은게 있어도 이상없이 뽑아주는군요...;;; 저도 쿼리짤때 조심해야겠습니다 ㅎㅎ
                             
                         | 
                    
어렵게 테스트 하지 마시고... $q = " SELECT t1.cate_id lev1, t1.cate_name name, t1.cate_order corder, t2.cate_id lev2, t2.cate_name name, t2.cate_order corder, t3.cate_id lev3, t3.cate_name name, t3.cate_order corder FROM category AS t1 LEFT JOIN category AS t2 ON t2.cate_upid = t1.cate_id LEFT JOIN category AS t3 ON t3.cate_upid = t2.cate_id WHERE t1.cate_upid = '' order by 3,6,9 "; 한번에 넣으셔도 됩니다. 이렇게 해서 쿼리 편집기랑 다르다면 DB를 다른걸 보고 있는게 아닌지 확인해 보세요.