2013-03-17 1 views
2

예,이 게시물에 대한 주제가 완벽하지 않다는 것을 인정하십시오. 그러나 나는 그것을 어떻게 현재 말로하는지 전혀 모른다.Codeigniter Active Record 보통 문장이 아닌 명령문을 선택하십시오.

내가하려는 것은 $this->db->query($sql); 유형의 성명을 피하는 것입니다. 나는 이것을 능동적 인 기록 방법에서 사용하는 것을 선호 할 것이지만, 나는 그 순간에 그것을 어떻게하는지 확신 할 수 없다.

내 쿼리는 다음

select loc.distance, 
loc.user, 
loc.lat, 
loc.lon, 
baseinfo.firstname, 
baseinfo.lastname, 
(((acos(sin((".$this->db->escape($lat)."*pi()/180)) * sin((`latitude`*pi()/180))+cos((".$this->db->escape($lat)."*pi()/180)) * cos((`latitude`*pi()/180)) * cos(((".$this->db->escape($lon)." - `longitude`)*pi()/180))))*180/pi())*60*1.1515) AS `distance` 
FROM memb_geo_locations loc 

의 개념을 보일 설정되어

그것을 얻을 내가 잠재적 LEFT JOINS, JOINS, 등

그러나이와 나머지를 구축으로 좀 더 광범위한 남자 ..

(((acos(sin((".$this->db->escape($lat)."*pi()/180)) * sin((`latitude`*pi()/180))+cos((".$this->db->escape($lat)."*pi()/180)) * cos((`latitude`*pi()/180)) * cos(((".$this->db->escape($lon)." - `longitude`)*pi()/180))))*180/pi())*60*1.1515) AS `distance` 

나는 어떻게 그것을 능동적 인 기록 방법으로 묶을 지 모르겠다. 나는 도움을 구하고있다. 어떤 아이디어?

+0

최근에 내가 확인할 수있는 답변이 있습니다. http://stackoverflow.com/questions/15400938/codeigniter-mysql-left-join-include-select/15402766#15402766 –

+0

내가 좀 이해하고있어 그, 개념,하지만 동시에 순전히, 그게 내가 전반적으로 찾고있는 것보다 조금 다릅니다. 그리고 만약 내가 할 수 있다면 (그리고 나는이 날짜까지) 시스템 폴더에서 빠져 나와 파일을 편집한다. CI를 업그레이드 할 때 잠재적 인 충돌을 일으키고 싶지는 않다. 업그레이 드의 가치가 주목할만한 릴리스 밀어) – chris

답변

1
 $this->db->select('loc.distance, 
     loc.user, 
     loc.lat, 
     loc.lon, 
     baseinfo.firstname, 
     baseinfo.lastname, 
     (((acos(sin(('.$this->db->escape($lat).'*pi()/180)) * sin((`latitude`*pi()/180))+cos(('.$this->db->escape($lat).'*pi()/180)) * cos((`latitude`*pi()/180)) * cos((('.$this->db->escape($lon).' - `longitude`)*pi()/180))))*180/pi())*60*1.1515) AS `distance` 
     '); 
     $this->db->from('loc'); 
     //then all stuffs you need more... like 
     $this->db->join(); 
     //etc.. 
     $query = $this->db->get('memb_geo_locations'); 
     return $query->result(); 
관련 문제