Codeigniter MYSQL返回最近的行

时间:2013-05-06 00:28:08

标签: php mysql codeigniter

我在下面有以下代码,我不确定修改它的最佳方法,以便它将最后输入的行显示在数据库中。

user_date列显示如下:2010-05-06 12:37:28

控制器:

$result = $this->shared_model->GetJustJoinedUser();
    $data['just_joined_user'] = $result->row_array();

型号:

function GetJustJoinedUser()
{
    $query = $this->db->query("SELECT *
                              FROM {$this->_table['users']} user
                              WHERE user_description != '' AND user_image != '' AND (user_twitter != '' OR user_youtube != '' OR user_vimeo!= '')
                              ORDER BY user_date DESC
                              LIMIT 1");

    return $query;
}

2 个答案:

答案 0 :(得分:1)

您的查询已经获得了最后插入的行,但在WHERE语句中有一些限制。

如果你想要真正的最后一行,只需删除WHERE语句,如下所示:

$query = $this->db->query("SELECT * FROM {$this->_table['users']} user ORDER BY user_date DESC LIMIT 1");

你似乎对SQL查询了解不多,所以我建议你阅读一些关于它的tuto。

答案 1 :(得分:0)

我不确定这是否可以解决您的问题,但您可以尝试这样的事情。

$last_id = $this->db->insert_id();

然后使用此$last_id查询您上次插入的用户。我希望这有帮助

$this->db->insert_id() 检索上一个查询(通常是INSERT)为AUTO_INCREMENT列生成的ID。

<强>更新

$last_id = $this->db->insert_id();

$this->db->where('id', $last_id);
$query = $this->db->get('users');
if($query)
{
    $query = $query->result_array();
    //$query here contains the details of the last inserted user
}

我只是展示了如何插入最后一个用户的想法。我希望这会对你有所帮助