выберите максимальный код - PullRequest
4 голосов
/ 18 января 2012

Я пытаюсь получить максимальное значение с codeigniter из таблицы, но это не работает. Это ошибка, которую я получаю:

Серьезность: 4096

Сообщение: объект класса CI_DB_mysql_result не может быть преобразован в строка

Имя файла: база данных / 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 = самое высокое id, полученное на шаге 1.
  3. Добавьте 1 к periode_nummer, полученному на шаге 2, и return это число.

Спасибо за помощь!

Ответы [ 4 ]

14 голосов
/ 18 января 2012

Попробуйте

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 голос
/ 10 августа 2017

Попробуйте это:

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

Последовательность отображения - это имя вашего столбца, а acl_menu - имя вашей таблицы.

1 голос
/ 18 января 2012

Вы не можете использовать объект как строку. Используйте это:

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;
}
0 голосов
/ 18 января 2012

Я думаю, что переменная $query содержит ресурс результата mysql, и ее нельзя использовать как строку или, в данном случае, целое число.

Вы можете попробовать это так:

$data = mysql_result($query,0) + 1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...