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

标签 php mysql codeigniter activerecord

我的问题很简单。我正在使用 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。如何选择最高的 id,其中 user_key 是匹配的数字。

最佳答案

您可以试试下面的代码

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

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

关于php - Codeigniter Active Record 只选择第一条记录而不是最近的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27665103/

相关文章:

php - 使用选择选项更新数据库 (Laravel 4)

php - 为所有用户或仅为想要登录的用户创建 PHP session ?

PHP从数组中获取多个数据

php - 如何在Codeigniter和Mysql中同步日期时间字段

php - fatal error 和警告?

javascript - 使用jquery影响具有相同id的div

mysql - 我需要为 Facebook 游戏购买 MySQL DB 服务器许可证吗

php - 在同一文件中使用 HTML 运行 PHP 脚本

javascript - 使用 AJAX 和 CodeIgniter 创建实时搜索

codeigniter - 更改datetime到date以便在codeigniter中进行比较