Я использую 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)');
Когда я звоню своему контроллеру, я получаю это сообщение:
Строка 38: if ($query->num_rows() > 0) {
Итак, я сделал var_dump ($ query), и вот результат:
В чем проблема ? и как я могу это решить?
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;
}
При создании переменной $query
вы уже добавили ->result()
.
Итак, $query
- это массив объектов-строк.
Вы должны изменить if
на это:
if (count($query) > 0) {
И, возможно, переименуйте переменную, например, в $results
.
Похожие вопросы
Новые вопросы
php
PHP - это широко используемый высокоуровневый, динамический, объектно-ориентированный и интерпретируемый язык сценариев, в первую очередь предназначенный для серверной веб-разработки. Используется для вопросов о языке PHP.