我有两个表:markers
和markers_types
。
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
如何正确地从数据库中检索行,例如,如果markers
的第一行将列type_id
设置为1
,我想从相应的输出图像markers_types
等于markers.type_id
的其他人markers_types.id
表中的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的新手,所以请提前抱歉这个基本问题,我试过但没有成功找到正确的答案。
答案 0 :(得分: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();