View Logging a column in several other columns

Asked

Viewed 25 times

2

I have the following tables:

aud_agendas
users

On the table aud_agendas, there are columns condutor and aprovador_lancador.
On the table usuarios, there are columns id and usuario.

I need to display the names that come from the field usuario table usuarios, in the columns condutor and aprovador_lancador respectively in my front-end.

Follow the code below:

    $result = "select aud_agendas.id, aud_agendas.id_agenda_mod, aud_agendas.passageiros, 
aud_agendas.data_saida, aud_agendas.hora_saida, aud_agendas.km_inicial, aud_agendas.data_chegada,
aud_agendas.hora_chegada, aud_agendas.km_final, aud_agendas.condutor, aud_agendas.origem, 
aud_agendas.destino, aud_agendas.motivo, aud_agendas.status, aud_agendas.statusaux, 
aud_agendas.justificativa, aud_agendas.veiculo, aud_agendas.aprovador_lancador, aud_agendas.data_alteracao, 
aud_agendas.acao, aud_agendas.id_usuario_mod, usuarios.usuario, veiculos.nome_veiculo from aud_agendas 
    left outer join veiculos on veiculos.id = aud_agendas.veiculo
    left outer join usuarios on usuarios.id = aud_agendas.condutor
    ORDER BY aud_agendas.id DESC LIMIT $inicio, $qnt_result_pg";


            $result = $conexao->prepare($result);               
            $result->execute();
            $contar = $result->rowCount();
            if($contar>0){
            while($mostra = $result->FETCH(PDO::FETCH_OBJ)){

             <tr>
                <td><?php echo $mostra->id; ?> </td>
                <td><?php echo $mostra->id_agenda_mod; ?> </td>
                <td><?php echo $mostra->status; ?> </td>
                <td><?php echo $mostra->nome_veiculo; ?> </td>
                <td><?php echo $mostra->usuario; ?> </td>
                <td><?php echo $mostra->aprovador_lancador;?> </td>
                <td><?php echo $mostra->data_alteracao; ?> </td>
                <td><?php echo $mostra->acao; ?> </td>
                <td><?php echo $mostra->id_usuario_mod; ?> </td>
             </tr>

SQL query:

SELECT      aud_agendas.id
        ,   aud_agendas.id_agenda_mod
        ,   aud_agendas.passageiros
        ,   aud_agendas.data_saida
        ,   aud_agendas.hora_saida
        ,   aud_agendas.km_inicial
        ,   aud_agendas.data_chegada
        ,   aud_agendas.hora_chegada
        ,   aud_agendas.km_final
        ,   aud_agendas.condutor
        ,   aud_agendas.origem
        ,   aud_agendas.destino
        ,   aud_agendas.motivo
        ,   aud_agendas.status
        ,   aud_agendas.statusaux
        ,   aud_agendas.justificativa
        ,   aud_agendas.veiculo
        ,   aud_agendas.aprovador_lancador
        ,   aud_agendas.data_alteracao
        ,   aud_agendas.acao
        ,   aud_agendas.id_usuario_mod
        ,   usuarios.usuario
        ,   veiculos.nome_veiculo 
FROM        aud_agendas 
LEFT JOIN   veiculos    ON veiculos.id = aud_agendas.veiculo
LEFT JOIN   usuarios    ON usuarios.id = aud_agendas.condutor
ORDER BY    aud_agendas.id DESC 
LIMIT       $inicio
        ,   $qnt_result_pg

The column usuario returns the driver’s name correctly, I need to do the same with the column aprovador_lancador.

1 answer

0

Change your query to the following:

SELECT      AA.id
        ,   AA.id_agenda_mod
        ,   AA.passageiros
        ,   AA.data_saida
        ,   AA.hora_saida
        ,   AA.km_inicial
        ,   AA.data_chegada
        ,   AA.hora_chegada
        ,   AA.km_final
        ,   AA.condutor
        ,   AA.origem
        ,   AA.destino
        ,   AA.motivo
        ,   AA.status
        ,   AA.statusaux
        ,   AA.justificativa
        ,   AA.veiculo
        ,   AA.aprovador_lancador
        ,   AA.data_alteracao
        ,   AA.acao
        ,   AA.id_usuario_mod
        ,   U.usuario               AS nome_condutor
        ,   U2.usuario              AS nome_aprovador_lancador
        ,   V.nome_veiculo 
FROM        aud_agendas AA
LEFT JOIN   veiculos    V   ON V.id     = AA.veiculo
LEFT JOIN   usuarios    U   ON U.id     = AA.condutor
LEFT JOIN   usuarios    U2  ON U2.id    = AA.aprovador_lancador
ORDER BY    AA.id DESC 
LIMIT       $inicio
        ,   $qnt_result_pg

Then, in your PHP code just get the information as follows:

// ao invés de  <td><?php echo $mostra->usuario; ?></td>
<td><?php echo $mostra->nome_condutor; ?></td>

// para o nome do "aprovador_lancador"
<td><?php echo $mostra->nome_aprovador_lancador; ?></td>
  • Thank you very much! João Martins gave it right.

  • You’re welcome! Mark the answer as right and give it a go :)

Browser other questions tagged

You are not signed in. Login or sign up in order to post.