2013-08-10 2 views
0

나는 두 테이블을 가지고 : markersmarkers_types. 예 markers에서 첫 번째 행 1 컬럼을 type_id 세트 그래서 만약CodeIgniter에서 두 테이블의 열 값에 따라 행을 분리하는 방법은 무엇입니까?

markers 
id, type_id, lat, lng 
1 1   42.000 2.500 
2 1   41.000 2.400 
3 2   40.000 2.300 

markers_types 
id, name, image 
1 TYPE1 type1.png 
2 TYPE2 type2.png 

어떻게 I가 다른 테이블에서 ID 대응의 출력에 이미지를 원하는 올바르게 DB에서 행을 검색 할 수 markers_typesmarkers.type_idmarkers_types.id? 바보 같은 질문에 대한 미안하지만 그것을 얻을 수 없습니다. 여기

은 내 map_model.php : 여기

class Map_model extends CI_Model{ 
    ... 
    function get_coordinates(){ 
     $this->db->select('*'); 
     $this->db->from('markers'); 
     $query = $this->db->get(); 

     if($query->result() < 1) 
      return false; 
     else{ 
      $results = $query->result(); 
      return $results; 
     } 
    } 
} 

그리고 내 app/controllers/map.php :

$dbresults = $this->map_model->get_coordinates(); 

foreach($dbresults as $item){ 
    $marker = array(); 
    $marker['position'] = $item->lat.','.$item->lng; 
    $marker['icon'] = base_url().'assets/img/ico/'.$item->image; // <-- I need to output here correct type image 
    $marker['infowindow_content'] = $item->description; 
    $this->googlemaps->add_marker($marker); 
} 

어떻게 그들을 혼합 할 수 있으므로 출력 적절한 이미지를 마커의 종류에 따라 것인가?

저는 MySQL에서 완전한 초보자입니다. pls는 그런 종류의 기본 질문에 대해 미리 유감스럽게 생각합니다. 시도했지만 올바른 대답을 찾지 못했습니다.

답변

1
$query = $this->db->query("SELECT * FROM markers LEFT JOIN marker_types ON markers.type_id = markers_types.id"); 

// RETURNS AN ARRAY 
$query->result_array(); 
+0

정말 고마워요! 이것은 내 마음을 맑게, 나는 LEFT JOIN이 completly 뭔가 다른 경우에 사용된다고 생각했다. 대답을 주셔서 감사합니다 – aspirinemaga

+0

사실, 내가 문제가있다, 그것 (예 :'ID' 열을 의미) 하나에 동일한 이름으로 열을 병합, 어떻게 그들을 분리? – aspirinemaga

+1

별칭을 지정해야합니다 .http : //stackoverflow.com/questions/11978078/alias-a-column-name-on-a-left-join –

관련 문제