2014-09-06 2 views
0

Мне нужно выбрать одну строку, которая совпадает с идентификатором пользователя и с самой последней датой создания, с использованием активных записей codeigniter.Последняя запись с использованием DateTime

creation_date является полем datetime!

public function recent_invoice($user_id) 
{ 
    $query = $this->CI->db->select('*'); 
    $query = $this->CI->db->from('invoices'); 
    $query = $this->CI->db->where('user_id', $user_id); 
    $query = $this->CI->db->where('creation_date',) 
    $query = $this->CI->db->get(); 

    $result = $query->row(); 
} 

Я хочу получить строки, соответствующие идентификатору пользователя, а затем из тех, кто получает самую последнюю дату создания. Как мне это сделать? Благодарю.

+1

использовать 'order_by' on' creation_date' coloumn – tomexsans

+0

Не вернет ли это еще несколько результатов? – user3968645

+1

добавить предел 1, чтобы он вернул только 1 набор данных – tomexsans

ответ

1

Попробуйте это, и если вам не нужно получать все столбцы, не используйте *, используйте только выбранные столбцы для повышения эффективности и безопасности.

$query = $this->CI->db->select('*') 
         ->from('invoices') 
         ->where('user_id', $user_id) 
         ->order_by('creation_date') 
         ->limit(1) 
         ->get(); 
$result = $query->row(); 
+0

. Как получить счет до последнего? – user3968645

+0

@ user3968645, это будет другой запрос, но если вы хотите использовать одну и ту же функцию, просто измените лимит на 2, чтобы он получил последнее и следующее последнее, и измените 'row()' на 'result' или' result_array() ', и вы можете обработать возврат. – tomexsans

Смежные вопросы