【问题标题】:how can get last 10 record from table in codeigniter如何从codeigniter中的表中获取最后10条记录
【发布时间】:2013-08-19 13:38:58
【问题描述】:

我的控制器具有从表中获取我的帖子的功能,如下所示:-

function getPosts($user_id, $from, $to) {
    $this->db->order_by("ev_date", "DESC");
    $query = $this->db->get_where($this->table_name, array('ev_user_id'=>$user_id));

    return $query->result();
}

以上功能我可以从表格中获取所有帖子,但我只需要显示表格中的最后 10 条记录。

第二个问题表“post”有user_id谁添加这个帖子,并存储user_id,当得到我需要的所有帖子 从“用户”表中获取用户名。

表用户通过“User_id”与post表匹配

【问题讨论】:

  • 我不会将此活动替换为 CI $query = $this->db->query("SELECT * FROM users,events WHERE users.id = events.ev_user_id and ev_user_id = '".$user_id."' order by ev_date DESC limit 10");

标签: php codeigniter


【解决方案1】:

听起来您需要加入才能获取用户名,使用 codeigniter 活动记录的加入的工作方式如下:

$this->db->join('user', 'user.user_id = post.user_id');

你可以使用limit来限制你的查询

$this->db->limit(10);

来源: CodeIgniter user manual

【讨论】:

  • 我不会将此活动替换为 CI $query = $this->db->query("SELECT * FROM users,events WHERE users.id = events.ev_user_id and ev_user_id = '".$user_id."' order by ev_date DESC limit 10");
【解决方案2】:
function getPosts($user_id, $from, $to) {
    $this->db->order_by("ev_date", "DESC");
    $query = $this->db->get_where($this->table_name, array('ev_user_id'=>$user_id), 10, 0);

    return $query->result();
}

来自 CI 文档。

$query = $this->db->get_where('mytable', array('id' => $id), $limit, $offset);

【讨论】:

  • 我不会将此活动替换为 CI $query = $this->db->query("SELECT * FROM users,events WHERE users.id = events.ev_user_id and ev_user_id = '".$user_id."' order by ev_date DESC limit 10");
【解决方案3】:
public function tenData()
{
    $query = $this->db
            ->order_by('id' , 'desc')
            ->limit(10)
            ->get('yourTable');

    return $query->result_array();
}

你可以试试这个。 order_by 你的 id 并添加限制。

【讨论】:

  • 请避免仅使用代码的答案,因为对该主题了解不足的人可能无法将其用于学习目的。尝试在此答案中添加对所做操作的解释:-)
猜你喜欢
  • 1970-01-01
  • 2019-12-28
  • 2021-09-01
  • 2021-07-23
  • 2022-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多