如何根据CodeIgniter中两个表中列的值分隔行?

时间:2013-08-10 23:17:19

标签: php mysql codeigniter-2

我有两个表:markersmarkers_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的新手,所以请提前抱歉这个基本问题,我试过但没有成功找到正确的答案。

1 个答案:

答案 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();