Извлечение значения из запроса 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);
    }
Author: Huskie, 2018-02-11

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);
}

Примечание: строки, которые я изменил, я прокомментировал в сторону с объяснение, чтобы вы знали, что я сделал.

Вот и все, надеюсь, это полезно для вас. Приветствие.

 1
Author: Huskie, 2018-02-13 13:12:57

Если вам нужно вытащить одно значение, вы должны изменить модель так, чтобы она выдавала только желаемое значение, например:

$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"

 0
Author: Carlos Varela, 2018-08-15 17:52:05