2013-02-19 3 views
2

Каков правильный способ извлечения последней строки, отсортированной по id, в CodeIgniter? Я пробовал select_max, но мне нужна вся строка.получить последнюю строку в db

function getLastPagination(){ 
    $data = array(); 
    $this->db->query("SELECT id,sort FROM pagination GROUP BY id DESC LIMIT 1"); 
    $query = $this->db->get('pagination'); 
    $data = $query->row_array(); 
    return $data; 
} 


$data['allpag'] = $this->Model_cats->getLastPagination(); 
$data['pagin'] = $data['allpag']['sort']; 
$per_page = $data['pagin']; 

Здесь я получаю первое значение, но мне нужна последняя строка.

+0

Вы получаете какую-то ошибку или нет, а какой результат вы получаете? –

+0

Ну, я пытаюсь использовать значение из последней строки ... и он возвращает мне первое значение! Я добавил некоторые изменения в сообщение – emcee22

+0

Сколько строк было полностью, если вы не сохранили лимит –

ответ

6

Попробуйте .............

function getLastPagination(){ 

    $query ="select * from pagination order by id DESC limit 1"; 

    $res = $this->db->query($query); 

    if($res->num_rows() > 0) { 
      return $res->result("array"); 
    } 
    return array(); 
    } 
} 

В функции контроллера необходимо выполнить следующие вещи .......

$allpag = $this->Model_cats->getLastPagination(); 
$per_page = $allpag[0]['sort']; 
+0

Сообщение: Undefined index: sort: - ?? это имя моего поля – emcee22

+0

сделать одно, прежде чем назначать $ allpag ['sort'] в $ per_pag, просто сделайте это и вставьте сюда то, что вы получите $ print_r ($ allpag); –

+0

Я получаю его правильно Массив ([0] => Массив ([id] => 130 [sort] => 12)) – emcee22

0
$query = $this->db->query("SELECT * FROM pagination ORDER BY id DESC LIMIT 1")->row_array(); 

Должно работать?

9
$this->db->select('id')->order_by('id','desc')->limit(1)->get('table_name')->row('id'); 
+0

Это решение является победителем –

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