选择max codeigniter

时间:2012-01-18 13:11:17

标签: php mysql codeigniter

我试图从表中获取codeigniter的最大值,但它不起作用。这是我得到的错误:

  

严重程度:4096

     

消息:无法将类CI_DB_mysql_result的对象转换为   串

     

文件名:database / DB_active_rec.php

     

行号:427

这是我的功能:

public function getPeriodeNummer($bedrijf_id) {
    $this->db->select_max('id');
    $this->db->where('bedrijf_id', $bedrijf_id);
    $result = $this->db->get('rapporten');

    $this->db->select('periode_nummer');
    $this->db->where('rapporten_id', $result);
    $query = $this->db->get('statistieken_onderhoud');

    $data = $query + 1;

    return $data;
}

我想要做的是如下:

  1. id选择bedrijf_id = $bedrijf_id的最高rapporten
  2. periode_nummer中选择statistieken_onderhoud,其中rapporten_id =我从步骤1获得的最高id
  3. 将1添加到我从第2步获得的periode_nummerreturn该数字。
  4. 感谢您的帮助!

6 个答案:

答案 0 :(得分:14)

尝试

public function getPeriodeNummer($bedrijf_id) {
    $this->db->select_max('id');
    $this->db->where('bedrijf_id', $bedrijf_id);
    $res1 = $this->db->get('rapporten');

    if ($res1->num_rows() > 0)
    {
        $res2 = $res1->result_array();
        $result = $res2[0]['id'];

        $this->db->select('periode_nummer');
        $this->db->where('rapporten_id', $result);
        $query = $this->db->get('statistieken_onderhoud');

        if ($query->num_rows() > 0)
        {
            $row = $query->result_array();
            $data['query'] = 1 + $row[0]['periode_nummer'];
        }

        return $data['query'];
    }

    return NULL;
}

答案 1 :(得分:1)

您不能将对象用作字符串。使用此:

public function getPeriodeNummer($bedrijf_id) {
    $this->db->select_max('id');
    $this->db->where('bedrijf_id', $bedrijf_id);
    $result = $this->db->get('rapporten');

    $this->db->select('periode_nummer');
    $this->db->where('rapporten_id', $result);
    $query = $this->db->get('statistieken_onderhoud');
    // fetch first row in object
    $result = $query->row();
    $data = $result + 1;

    return $data;
}

答案 2 :(得分:1)

试试这个:

    $this->db->select_max('display_sequence');
    $this->db->from('acl_menu');
    $query = $this->db->get();
    $r=$query->result();

显示顺序是您的列名称& acl_menu是你的表名。

答案 3 :(得分:0)

我认为$query变量持有一个mysql结果资源,它不能用作String或者在本例中是一个Integer。

您可以尝试这种方式:

$data = mysql_result($query,0) + 1;

答案 4 :(得分:0)

$this->db->select_max('id', 'max_id');
$query = $this->db->get('video_processing');

return $query->row();

尝试以上操作:

答案 5 :(得分:0)

最短:

$this->db->select_max('id', 'max_id')->get('video_processing')->row();