Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal Tenho uma tabela com dois valores motorista e telefone, fiz uma consulta onde através do id da tabela motorista eu listo o telefone do mesmo, eu cadastro esses motoristas em outra tabela, o que preciso fazer é comparar o motorista que foi cadastrado na tabela Jornada, com o motorista da tabela motorista e mostrar o telefone do mesmo .
como posso fazer essa comparação ?
No código abaixo esta uma consulta básica onde mostro o telefone do respectivo motorista através da sua id, a variável $Cad_Jornada, eu mostro o mesmo motorista que esta cadastrado na outra tabela mencionado acima, tabela jornada , preciso comparar o motorista da tabela jornada com o motorista da tabela motorista e trazer o seu telefone .
Desde já agradeço.
<?php
$Cad_Jornada["Motorista"];
$idMotorista = "13"; //variavel com o id do motorista
require("conexao.php"); //arquivo com parametros da conexão da base
$consulta = $conexao->query("SELECT telefone FROM motorista where idMotorista= $idMotorista;"); // consulta o campo telefone da tabela motorista
$dadosBd = $consulta->fetch(PDO::FETCH_ASSOC);
echo $dadosBd['telefone']; mostro o telefone de acordo com o id na variavel motorista
?>Tenta usar um join de uma tabela para a outra, pega uma coluna em comum entre os dois. Nesse caso usaria o Left Join ou Right Join, depende o raciocínio que usar.
>
13 horas atrás, Leonardo B. Tosin disse:
Tenta usar um join de uma tabela para a outra, pega uma coluna em comum entre os dois. Nesse caso usaria o Left Join ou Right Join, depende o raciocínio que usar.
Obrigado pelas dicas, então com faço nesse seguindo esse linha de raciocínio:
duas tabelas
1 tabela 2 tabela
motorista jornada
idmotorista idjornada
motorista motorista
telefone
preciso comparar o motorista da tabela 2 com o da tabela 1 e mostrar o telefone dele .
como faria isso ?
o Guilherme me deu um exemplo porem este não funcionou, ele não retorna erro mas também não mostra o telefone no echo, devo estar errando em alguma coisa.
<?php
$idMotorista = "12"; //variavel com o id do motorista
require("conexao.php"); //arquivo com parametros da conexão da base
//$consulta = $conexao->query("SELECT telefone FROM motorista where idMotorista= $idMotorista;");
$consulta = $conexao->query("SELECT motorista.telefone as motoFone,Cad_Jornada.Motorista as jornaFone FROM motorista
INNER JOIN Cad_Jornada ON Cad_Jornada.Motorista = motorista.telefone WHERE motorista.idMotorista='$idMotorista'");
$dadosBd = $consulta->fetch(PDO::FETCH_ASSOC);
echo $dadosBd["telefone"];
?>
<?php>
14 horas atrás, Leonardo B. Tosin disse:
Tenta usar um join de uma tabela para a outra, pega uma coluna em comum entre os dois. Nesse caso usaria o Left Join ou Right Join, depende o raciocínio que usar.
Leonardo,
Em pesquisa na internet chegue ate esse ponto.
SELECT motorista.motorista "Motorista", //TABELA motorista.(campo motorista) "Motorista",
cad_jornada.Motorista "Motorista" //TABELA cad_jornada.(campo motorista) "Motorista",
FROM motorista // tabela motorista
INNER JOIN cad_jornada ON cad_jornada.Motorista = motorista.Motorista (aqui se eu entendi bem ele faz comparação com as duas colunas motoristas das tabelas e mostra o resultado).
o que quero fazer é compara o Motorista da tabela cad_jornada com o Motorista da tabela motorista e mostrar a coluna telefone desse motorista . (esta coluna telefone esta na tabela motorista).
Olha esse exemplo:
-----------------------------------------
SELECT DISTINCT radpostauth.id, radpostauth.username, IF(reply = "Access-Reject", radpostauth.pass, "") AS pass, radpostauth.reply, DATE_FORMAT(radpostauth.authdate, "%d/%m/%Y %H:%i:%s") AS data FROM radpostauth LEFT JOIN radcheck ON radpostauth.username = radcheck.username WHERE radpostauth.username LIKE "%elintonb%" ORDER BY authdate DESC LIMIT 200
------------------------------------------------------------------------------------------
imagina que uma tabela é a radpostauth e a outra radcheck. Estou comparando os usernames dessas duas tabelas que são os únicos em comum entre elas, como estou usando o LEFT, está jogando todas as colunas da tabela 1 para a 2, e se der um SLECT *, vai sair uma tabela de 8 colunas, que seria as duas juntas.. Tem que sempre usar o elemento em comum entre as duas, ou usae como eu gosto de chamar, "elemento ancora", uma coluna da tabela que define uma coluna de outra tabela. Nessa seria a coluna pass da primeiro com attribute da segunda, que dependendo do que estiver inserido nessa coluna resultará em alguma opção de atributo na coluna 2.>
4 horas atrás, Leonardo B. Tosin disse:
Olha esse exemplo:
-----------------------------------------
SELECT DISTINCT radpostauth.id, radpostauth.username, IF(reply = "Access-Reject", radpostauth.pass, "") AS pass, radpostauth.reply, DATE_FORMAT(radpostauth.authdate, "%d/%m/%Y %H:%i:%s") AS data FROM radpostauth LEFT JOIN radcheck ON radpostauth.username = radcheck.username WHERE radpostauth.username LIKE "%elintonb%" ORDER BY authdate DESC LIMIT 200
------------------------------------------------------------------------------------------
imagina que uma tabela é a radpostauth e a outra radcheck. Estou comparando os usernames dessas duas tabelas que são os únicos em comum entre elas, como estou usando o LEFT, está jogando todas as colunas da tabela 1 para a 2, e se der um SLECT *, vai sair uma tabela de 8 colunas, que seria as duas juntas.. Tem que sempre usar o elemento em comum entre as duas, ou usae como eu gosto de chamar, "elemento ancora", uma coluna da tabela que define uma coluna de outra tabela. Nessa seria a coluna pass da primeiro com attribute da segunda, que dependendo do que estiver inserido nessa coluna resultará em alguma opção de atributo na coluna 2.
mano mais um vez venho agradecer pela forca, mas como todo iniciante o que tenho ate o momento e a energia positiva e persistência de que vou conseguir, só que, visto o que você citou esta muito avançado para mim .
o que conseguir fazer ate o momento foi , realizar essa consulta no banco de dados já e um começo ela esta comparando os dois campos motorista que consta na tabela Motorista e na tabela cad_jornada.
SELECT motorista.Motorista "Motorista",
cad_jornada.Motorista "Motorista"
FROM motorista
INNER JOIN cad_jornada ON cad_jornada.Motorista = motorista.Motorista
No anexo esta as duas tabelas, tabela A motorista, tabela B jornada ou seja os motoristas da tabela A, eu cadastro na tabela B isso falando em aplacação pelo formulário, o que estou tentando é compara o motorista como exemplo o Paulo Roberto :
preciso retornar o telefone dele ou seja compara nas duas tabela e mostrar o telefone que consta na A .

>
17 horas atrás, josenilson disse:
mano mais um vez venho agradecer pela forca, mas como todo iniciante o que tenho ate o momento e a energia positiva e persistência de que vou conseguir, só que, visto o que você citou esta muito avançado para mim .
o que conseguir fazer ate o momento foi , realizar essa consulta no banco de dados já e um começo ela esta comparando os dois campos motorista que consta na tabela Motorista e na tabela cad_jornada.
SELECT motorista.Motorista "Motorista",
cad_jornada.Motorista "Motorista"
FROM motorista
INNER JOIN cad_jornada ON cad_jornada.Motorista = motorista.Motorista
No anexo esta as duas tabelas, tabela A motorista, tabela B jornada ou seja os motoristas da tabela A, eu cadastro na tabela B isso falando em aplacação pelo formulário, o que estou tentando é compara o motorista como exemplo o Paulo Roberto :
preciso retornar o telefone dele ou seja compara nas duas tabela e mostrar o telefone que consta na A .

Leonardo,
cheguei ate este ponto, ou seja, no código abaixo eu consigo listar o que quero, o telefone do motorista porem tenho que setar manualmente o id na variável $idMotorista["13"]; preciso que ele mostre o telefone do respectivo motorista que esta cadastrado na tabela jornada.
Eu tenho o motorista da tabela jornada nessa variável $Cad_Jornada["Motorista"];
preciso saber como associar isso.
<?php
$idMotorista ='13'; //variavel com o id do motorista
require("conexao.php"); //arquivo com parametros da conexão da base
$consulta = $conexao->query("SELECT motorista.telefone, cad_jornada.Motorista AS Motorista
FROM motorista
INNER JOIN cad_jornada ON cad_jornada.Motorista = motorista.Motorista WHERE motorista.idMotorista='$idMotorista'");
$dadosBd = $consulta->fetch(PDO::FETCH_ASSOC);
echo $dadosBd["telefone"];
?>Bom pessoal fica aqui meu agradecimento a todos, finalizei o que precisava, deixo aqui uma breve descrição para outros possam ser ajudados com o mesmo assunto.
Neste tópico eu estava em busca de compara uma coluna que contem em duas tabelas distintas, ou seja tenho a tabela A motorista e tenho a tabela B jornada no código descrito abaixo eu comparo o motorista que esta cadastrado na tabela jornada e listo o telefone que consta na tabela motorista do respectivo motorista que esta cadastrado.
<?php
$idCad_Jornada = $Cad_Jornada['idCad_Jornada'];
//variavel com o id da jornada
require("conexao.php"); //arquivo com parametros da conexão da base
//$consulta = $conexao->query("SELECT telefone FROM motorista where idMotorista= $idMotorista;");
$consulta = $conexao->query("SELECT motorista.telefone, cad_jornada.Motorista AS Motorista
FROM motorista
INNER JOIN cad_jornada ON cad_jornada.Motorista = motorista.Motorista WHERE cad_jornada.idCad_Jornada='$idCad_Jornada'");
$dadosBd = $consulta->fetch(PDO::FETCH_ASSOC);
echo $dadosBd["telefone"];
?>

POST REPEDIDO em: