2017-07-27 97 views
0

我正在使用CodeIgniter,我想從表中獲取最高ID。這是我在模型中實現的功能。但是,我沒有得到結果,這是一個單一的價值,作爲價值回來。Codeigniter SQL查詢返回單個值

代碼:

function get_highest_answer_id(){ 
    $this->db->query('SELECT MAX(id) AS answerid FROM pa_it_answer;'); 
    if ($query = $this->db->get()) { 
     if ($query->num_rows() > 0) { 
      return $query->result(); 
     } else { 
      return array(); 
     } 
    } else { 
     return FALSE; 
    } 
} 

怎麼辦我必須改變,當我在我的控制器調用這個函數,我得到的單值的代碼?

+0

'如果你不組查詢max'返回一個值,以簡化你的方法。 – Badiparmagi

回答

2

下面的代碼對我來說工作得很好。

$MAXID = 0; 
$row = $this->db->query('SELECT MAX(id) AS answerid FROM pa_it_answer')->row(); 
if ($row) { 
    $MAXID = $row->answerid; 
} 
0

試試這個:

function get_highest_answer_id(){ 
    $this->db->query('SELECT MAX(id) AS answerid FROM pa_it_answer;'); 
    if ($query = $this->db->get()) { 
     if ($query->num_rows() > 0) { 
      return $query->row(); // here!!! 
     } else { 
      return array(); 
     } 
    } else { 
     return FALSE; 
    } 
} 

我推薦使用CI querybuilder(編者)

$this->db->select_max('id', 'answerid'); 
$query = $this->db->get('pa_it_answer'); 

var_dump($query); 
var_dump($query->answerid); 
die(); 
+0

當我嘗試MikeSoutos解決方案總會有一個消息:數據庫錯誤發生 錯誤編號:1096 無表使用 SELECT * 文件名:C:/..../應用程序/模型/ Model.php 行號:825 – Bryan

+0

嗨!建議的解決方案?我編輯帖子以適應推薦的解決方案。 – MikeSouto

+0

不是第一個 – Bryan

0

更改您的查詢的笨這樣

function get_highest_answer_id(){ 
    $this->db->select('MAX(id) AS answerid'); 
     if ($query = $this->db->get('pa_it_answer')) { 
      if ($query->num_rows() > 0) { 
       return $query->result(); 
      } else { 
       return array(); 
      } 
     } else { 
      return FALSE; 
     } 
    } 
0

我們必須用row()

function get_highest_answer_id(){ 
     $record = $this->db->query('SELECT MAX(id) AS answerid FROM pa_it_answer;')->row(); 
     if ($record) { 
      return $record->answerid; 
     } 
     else { 
      return FALSE; 
     } 
    }