Codeigniter:仅显示最后日期条目

时间:2016-06-15 14:29:29

标签: php mysql codeigniter

我需要显示表格中某人的最后一个日期条目,取自已连接的表格。

我似乎只能显示第一个条目或全部。

控制器

public function session_view($id)
    {
        $data['main_view'] = 'session_view';
        $data['view'] = $this->Swim_model->CRUD_read_session($id);
        $this->load->view('load_view',$data);
    }

模型

public function CRUD_read_session($sessionid)
    {
        return $this->db->select('*')
            ->from('sessionsandswimmers')
            ->join('child', 'ID = SwimmersID')
            ->join('swimmersawards', 'PersonID = ID')
            ->join('awards', 'AwardID = AwardsID')
            ->order_by('LastName')
            ->order_by('DateAwarded')
            ->where('SessionID', $sessionid)
        ->get();
    }

查看

foreach ($view->result() as $row)
    {
            echo '<tr>'.$row->FirstName.'</td><td'.$row->LastName.'</td><td>'.$row->Description.'</td><td>'.$row->DateAwarded.'</td></tr>';
    }

结果

如您所见,每个人都有几个条目(第1个除外)。

我需要为每个人显示最新的日期条目。

所以应该只有4个条目。

enter image description here

表格结构

会议和游泳者 - 每个会议有4名游泳运动员

1 tempid Primary int(11)否无AUTO_INCREMENT
2 SessionID int(11)否无
3 SwimmersID int(11)否无
4 SessionSeasonID int(11)否无
5年int(11)否无

6位置SS int(11)否无

孩子 - 得到游泳运动员的名字

swimmersawards - 每个孩子多个条目

1 PersonID int(11)否无

2 AwardsID int(11)否无

3 DateAwarded日期否无

奖项 - 获得奖项的名称

2 个答案:

答案 0 :(得分:0)

->order_by('DateAwarded')更改为->order_by('DateAwarded','DESC')。需要指定所需的订购类型。每人只需输入一次:

->group_by('FirstName,LastName')

答案 1 :(得分:0)

如果我理解正确,您显示的结果就是表格结构。您希望每个“名称”的最新日期输入。如果这是正确的,请关注,

SELECT DISTINCT `name` FROM `<your-joined-tables>` order by `date` DESC 

抱歉,我对CI的查询构建器不满意。 希望它有效。