2017-07-27 64 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; 
     } 
    }