Мне нужно получить все строки, которые фильтруются по запросу. Но из модели в контроллер возвращается только первая строка.
Ниже приведена моя модельная функция. Как получить все необходимые данные?
public function getOfferTags($param) {
$this->db->select('tags.*');
$this->db->from('tags');
$this->db->join('offer_tag', 'offer_tag.tag_id = tags.id');
$this->db->join('offers', 'offers.id = offer_tag.offer_id');
$this->db->where('offers.id', $param);
$query = $this->db->get();
return $query->row();
}
Извините, я новичок в CI. Когда я проверяю возвращаемые значения на контроллере, возвращается только первая строка.






Просто не возвращайте строку и извлекайте в этом месте как форму массива, например
return $query->result_array();
После этого проверяем контроллер и получаем результат в массиве.
Я просто хотел добавить, поскольку вы новичок в CI, что вы всегда должны проверять, являются ли они строками, прежде чем использовать массив, чтобы предотвратить уведомления или проблемы. с помощью метода Мехты вы бы сделали if (count($rows) > 0) { //rows exist } else { // no rows, display error .etc. } или можете:
$query = $this->db->get();
if ($query->num_rows() > 0) {
return $query->result_array(); // or result() for obj
}
return false;
Использование:
if ($this->somemodel->getOfferTags($stmt)) {
// has data
} else {
// no data
}
Важно начать с хороших практик, и это поможет;)
Большое тебе спасибо. Я обязательно буду следовать вышеуказанной практике
Не могли бы вы вернуть запрос, а не одну строку, а затем перебрать его, или
return $query->result_array()