МОДЕЛЬ
function addressForMap($id)
{
$this->db->select('b.id, b.busaddress, b.buscity, b.buszip');
$this->db->from('business as b');
$this->db->where('b.id', $id);
// add a limit
$this->db->limit(1);
// get the results.. cha-ching
$q = $this->db->get();
// any results?
if($q->num_rows() !== 1)
{
return FALSE;
}
return $q->row();
}
КОНТРОЛЛЕР
function your_controller_method($id)
{
$data = $this->Business_model->addressForMap($id);
// did we get any results?
if($data === FALSE)
{
show_error();
return;
}
$marker['address'] = $data->busaddress.' '.$data->buscity.', '.$data->buszip;
}
Убедитесь, что вы подтвердили, что $id
является действительным числовым идентификатором. Это хорошая вещь, которую нужно сделать перед выполнением запроса .. ИМО.
РЕДАКТИРОВАТЬ # 2: см. Измененный код выше
РЕДАКТИРОВАТЬ # 1: из вашего комментария и изменений
У вас есть это:
return $this->db->get();
когда, основываясь на остальной части вашего кода, это должно быть так:
$query = $this->db->get();
Когда вы возвращаете объект запроса, переменной $address
присваивается объект результата CI. Итак, в вашем контроллере вы должны сделать что-то вроде этого:
$address = $this->Business_model->addressForMap($id);
$row = $address->row();
$marker['address'] = $row->busaddress .' '.$row->buscity .', '. $row->buszip;
Тем не менее ... Я бы предложил изменить return
на $query =
, и вы можете оставить свой контроллер таким, какой он есть.