php – Codeigniter Active Record仅选择第一条记录而不是最近的记录

我的问题非常简单.我正在使用codeigniter活动记录,而模型类所要做的就是从属于该用户的表中选择最新项.

function get_progress($users_id)
 {
  $query = $this->db->get('progress');
  $this->db->where('user_key', $users_id);
  $this->db->order_by("id", "desc");
  $this->db->limit(1);
  return $query->row_array();
 }

看起来很简单,但由于某种原因,它抓住了与user_key匹配的最低ID.

我已经尝试将where语句更改为

  $this->db->where('id', '2');

它有效,但当然,这只是为了排除故障.我需要变量.

我已经改写了几种方法,包括使用get_where()和将desc更改为asc.无论如何,它都抓住了低id.如何选择user_key为匹配数字的最高ID.

最佳答案 您可以尝试以下代码

function get_progress($users_id){
  return $this->db->from('progress')
  ->where('user_key', $users_id)
  ->order_by("id", "DESC")
  ->get()
  ->row();
}

您将获得最后一行作为STD Class对象

点赞