Извлечение значения из запроса Codeigniter
я не смог использовать результат, полученный запрос из модели в Codeigniter в качестве параметра, чтобы я мог выполнить другой запрос, который требует вышеуказанной информации.
Код модель:
public function datosuser($codigo){
$this->db->select('*');
$this->db->where('codigo',$codigo);
$resultado= $this->db->get('usuarios');
return $resultado->result();
}
public function segundoautor($codigo2){
$this->db->select('*');
$this->db->where('codigo',$codigo2);
$resss= $this->db->get('usuarios');
return $resss->result();
}
и это контроллер:
$sesion = $this->session->userdata('codigo');
if($sesion){
//cargando datos
$datosu['usuarios'] = $this->principal_model->datosuser($sesion);
$datosu['documentos'] = $this->principal_model->consultandodocumentos($sesion);
foreach ($documentos as $documents){
$datosu['datosa2'] = $this->principal_model->segundoautor($documents->codigouser2;)
}
$datosu['integrantes'] = $this->principal_model->usuarios();
//views
$this->load->view('paginaprincipal', $datosu);
$this->load->view('contenido/contenedor1',$datosu);
$this->load->view('contenido/contenedor2',$datosu);
$this->load->view('contenido/contenedor3',$datosu);
$this->load->view('contenido/contenedor4',$datosu);
$this->load->view('contenido/contenedor5',$datosu);
$this->load->view('contenido/contenedor6',$datosu);
$this->load->view('contenido/contenedor7',$datosu);
$this->load->view('contenido/contenedor8',$datosu);
$this->load->view('contenido/contenedor9',$datosu);
$this->load->view('contenido/contenedor10',$datosu);
$this->load->view('contenido/contenedor11',$datosu);
$this->load->view('contenido/contenedor12',$datosu);
$this->load->view('contenido/contenedor13',$datosu);
$this->load->view('contenido/contenedor14',$datosu);
}
2 answers
Проблема в этой строке кода, у вас есть ";" куда он не идет:
foreach ($documentos as $documents){
$datosu['datosa2'] = $this->principal_model->segundoautor($documents->codigouser2;) // el ; está mal ubicado
}
Заменяет следующим кодом:
foreach ($documentos as $documents){
$datosu['datosa2'] = $this->principal_model->segundoautor($documents->codigouser2); // el ; está mal ubicado
}
Обновление: основываясь на вашем комментарии в моем ответе, вы можете попробовать следующее:
Используйте в своей модели следующий код:
public function datosuser($codigo){
$this->db->select('*');
$this->db->where('codigo',$codigo);
$resultado= $this->db->get('usuarios');
return $resultado->result_array(); /* Para obtener un arreglo en vez de un objeto */
}
public function segundoautor($codigo2){
$this->db->select('*');
$this->db->where('codigo',$codigo2);
$resss= $this->db->get('usuarios');
return $resss->result_array(); /* Para obtener un arreglo en vez de un objeto */
}
И в вашем контроллере следующий код:
$sesion = $this->session->userdata('codigo');
if($sesion){
//cargando datos
$datosu['usuarios'] = $this->principal_model->datosuser($sesion);
$datosu['documentos'] = $this->principal_model->consultandodocumentos($sesion);
foreach ($documentos as $row =>$documents){ /* Así se tiene cada valor de un arreglo sencillo */
$codigouser2=$documents['codigouser2']; /* Obtenemos lo que se va a pasar como parametro al segundo foreach */
$datosu['datosa2'] = $this->principal_model->segundoautor($codigouser2); /* Aplicamos el foreach con el parametro simple */
}
$datosu['integrantes'] = $this->principal_model->usuarios();
//views
$this->load->view('paginaprincipal', $datosu);
$this->load->view('contenido/contenedor1',$datosu);
$this->load->view('contenido/contenedor2',$datosu);
$this->load->view('contenido/contenedor3',$datosu);
$this->load->view('contenido/contenedor4',$datosu);
$this->load->view('contenido/contenedor5',$datosu);
$this->load->view('contenido/contenedor6',$datosu);
$this->load->view('contenido/contenedor7',$datosu);
$this->load->view('contenido/contenedor8',$datosu);
$this->load->view('contenido/contenedor9',$datosu);
$this->load->view('contenido/contenedor10',$datosu);
$this->load->view('contenido/contenedor11',$datosu);
$this->load->view('contenido/contenedor12',$datosu);
$this->load->view('contenido/contenedor13',$datosu);
$this->load->view('contenido/contenedor14',$datosu);
}
Примечание: строки, которые я изменил, я прокомментировал в сторону с объяснение, чтобы вы знали, что я сделал.
Вот и все, надеюсь, это полезно для вас. Приветствие.
Если вам нужно вытащить одно значение, вы должны изменить модель так, чтобы она выдавала только желаемое значение, например:
$this->db->select('*');
$this->db->from('table1');
$this->db->where('campo','valor');
$query1 = $this->db->get();
$row_query1 = $query1->row_array(); //Aquí tomamos todo el registro de la consulta
//Lo usas en otra consulta
$this->db->select('*');
$this->db->from('table2');
$this->db->where('campo2',$row_query1['ID']);
.
.
.
//O tambien retornas directo
return $row_query1['ID'];
Где индекс " ID "должен быть помещен в имя поля базы данных, или вместо "select * " вы выполняете"select ID"