Я использую CodeIgniter и хочу получить данные из таблицы в базе данных.

В моей модели у меня есть эта функция:

public function fetch_cours($limit, $start, $element) {

        $id_element = $this->db->from('element')
                               ->where('name',$element)
                               ->limit(1)
                               ->get()
                               ->result();

        $query = $this->db->from('cour')
                           ->where('id_element',(int) $id_element[0]->id)
                           ->limit($limit, $start)
                           ->get()
                           ->result();
        var_dump($query);

        if ($query->num_rows() > 0) {
            foreach ($query->result() as $row) {
                $data[] = $row;
            }
            return $data;
        }
        return false;
   }

Я хочу, чтобы эта функция возвращала некоторые записи в таблице cour.

В моем контроллере у меня есть такая строка:

$cours = $this->cours_m->fetch_cours(10,0,'Programmation Orientée Objet (Java)');

Когда я звоню своему контроллеру, я получаю это сообщение:

enter image description here

Строка 38: if ($query->num_rows() > 0) {

Итак, я сделал var_dump ($ query), и вот результат:

enter image description here

В чем проблема ? и как я могу это решить?

2
Renaud is Not Bill Gates 24 Дек 2013 в 02:09

2 ответа

Лучший ответ

Вызов -> result (), вы получаете результат выполнения запроса в массиве. Вы можете назвать свою переменную так, например:

$cours = $this->db->from('cour')
    ->where('id_element',(int) $id_element[0]->id)
    ->limit($limit, $start)
    ->get()
    ->result();

Затем измените свой тест как:

if (count($cours) > 0) {
    foreach ($cours->result() as $row) {
        $data[] = $row;
    }
    return $data;
}
3
captain_a 5 Ноя 2020 в 09:46

При создании переменной $query вы уже добавили ->result().

Итак, $query - это массив объектов-строк.

Вы должны изменить if на это:

if (count($query) > 0) {

И, возможно, переименуйте переменную, например, в $results.

4
Lajos Veres 23 Дек 2013 в 22:21