2013-02-19 60 views
2

在CodeIgniter中檢索最後一行,按id排序的desc的正確方法是什麼? 我試過select_max但我想整行。得到分區中的最後一行

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

你會得到一些錯誤,或者如果不是你得到的輸出是什麼? – 2013-02-19 14:11:38

+0

以及我正在嘗試使用最後一行的值...並且它檢索到第一個值!我在文章中添加了一些修改 – emcee22 2013-02-19 14:13:50

+0

如果您不保留限制,總共有多少行 – 2013-02-19 14:14:33

回答

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

消息:未定義索引:排序: - ??這是我的字段名稱 – emcee22 2013-02-19 14:24:36

+0

在將$ allpag ['sort']分配給$ per_pag之前做一件事,只需執行此操作並粘貼到此處即可獲得$ print_r($ allpag); – 2013-02-19 14:26:11

+0

我得到它正確的陣列([0] =>陣列([編號] => 130 [排序] => 12)) – emcee22 2013-02-19 14:27:46

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

這個解決方案是贏家 – 2016-05-26 13:50:34