Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal, estou tentando comparar o valor duas tabelas onde uma contem o cadastro do motorista, constando seu nome e telefone, em outra consta o cadastro de jornada onde listo através de de um select option esse motorista.
apos cadastrar a jornada e exibido em uma pagina html o resultado da mesma, só que estou tentando trazer para esta pagina o campo telefone que consta na tabela de motorista, ou seja estou tentando comparar o motorista que foi cadastrado e a partir dai trazer a sua linha telefone que consta na tabela em minha tentativas eu cheguei nesse ponto: o código abaixo traz o respetivo telefone do motorista porem não só mas também os demais telefones, quero trazer somente o telefone do respectivo motorista.
Descrevendo o código:
logo no inicio eu estou trazendo no php o motorista cadastrado, e no proximo php eu fiz uma consulta no banco de dodos na tabela motorista, estou tentando comparar o motorista que consta na variável $Cad_Jornada["Motorista"]; com o da consulta caso seja True ele retorna somente o campo telefone desse motorista, mas ele esta trazendo todos os telefones ao em vez disso quero trazer somente um telefone, ou seja o que consta na variável .
obrigado galera é isso .
Motorista: <?php echo $Cad_Jornada["Motorista"]; ?>
<?php
// Instancia o objeto PDO
$pdo = new PDO('mysql:host=localhost;dbname=painel_logistico', 'root', '');
$consulta = $pdo->query("SELECT * FROM motorista;");
while ($linha = $consulta->fetch(PDO::FETCH_ASSOC)) {
$motorista = $linha['motorista'];
$telefone = $linha['telefone'];
if ($cad_jornada["Motorista"] = $motorista = $linha['motorista'] ) {
echo $telefone = $linha['telefone'];
}else
?>
<?php
}
?>>
1 hora atrás, Guilherme Luiz disse:
Você precisa tirar a consulta do LOOP.
Uma forma mais simples seria
SELECT telefone FROM motorista WHERE id='id_do_motorista_aqui'
Esse seu código, com todo respeito, está sem pé e nem cabeça...
Você faz uma extração sem nenhuma condição da sua tabela motorista e depois faz uma comparação de dados dentro do while, chama a impressão de todo o loop e ainda quer somente um registro de resultado?!
Pense o seguinte... se você quer um dado de um registro especifico do banco de dados, porque fazer uma consulta generica para trazer todos os registros!? Não faz sentido! Isso não chega nem ser algo que dependa de conhecimento de programação mas sim de lógica!
Se você precisa de um dado especifico de um registro especifico, será que não tem outro metodo mais direto e simples de traze-lo ao inves de pesquisar tudo e ai então começar a tentar filtrar!?
Sim!
<?php
$idMotorista = "999"; //variavel com o id do motorista
require("bd_connect.php"); //arquivo com parametros da conexão da base
$query = "SELECT telefone FROM motorista WHERE id='$idMotorista'"; //aqui peço para trazer apenas a coluna telefone da tabela motorista se o id for igual a 999
$sql = mysqli_query($conexao,$sql); //especifico $conexao que trago do arquivo bd_connect.php com os parametros de conexão ao mysql
$x = mysqli_fetch_assoc($sql); //extraio os resultados atraves do fetch_assoc que a minha consulta resultar
echo $x['telefone']; //imprimo o registro telefone do motorista id 999
?>
Isso é só um exemplo muito basico!
Da uma grande revisada nesse seu código porque ele está totalmente sem sentido!
vlw pela ajuda mano,
qual tipo de conexão você esta usando em bd_connect ?
eu uso PDO essa serve ?
<?php
try {
$conexao = new PDO('mysql:host=localhost;dbname=sistema', "root","" );
$conexao->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo 'ERROR: ' . $e->getMessage();
}
?>Boa mano,
usando suas dicas deu certo por enquanto, olha o código .
$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;");
$dadosBd = $consulta->fetch(PDO::FETCH_ASSOC);
echo $dadosBd['telefone'];
blz se eu selar o valor de um id existente na tabela de motorista ele vai mostrar o telefone do tal, porem o que estou tentando é compara se o motorista cadastrado na tabela Jornada conter na tabela motorista me mostre o telefone dele.
ou seja aqui eu tenho o motorista cadastrado na tabela jornada $Cad_Jornada["Motorista"];
tenho que compara ele com a tabela motorista e caso seja true me mostre o telefone dele.Utilize INNER JOIN - https://www.w3schools.com/sql/sql_join_inner.asp
$id = "999";
SELECT
motorista.telefone as motoFone,
jornada.telefone as jornaFone
FROM motorista
INNER JOIN jornada ON jornada.telefone = motorista.telefone
WHERE motorista.id='$id'>
5 horas atrás, Guilherme Luiz disse:
Utilize INNER JOIN - https://www.w3schools.com/sql/sql_join_inner.asp
$id = "999";
SELECT
motorista.telefone as motoFone,
jornada.telefone as jornaFone
FROM motorista
INNER JOIN jornada ON jornada.telefone = motorista.telefone
WHERE motorista.id='$id'
Tentei dessa forma, não retornou erro e nem mostrou o telefone do motorista .
<?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
Você precisa tirar a consulta do LOOP.
Uma forma mais simples seria
$idMotorista = "999"; //variavel com o id do motorista
require("bd_connect.php"); //arquivo com parametros da conexão da base
$query = "SELECT telefone FROM motorista WHERE id='$idMotorista'"; //aqui peço para trazer apenas a coluna telefone da tabela motorista se o id for igual a 999
$sql = mysqli_query($conexao,$sql); //especifico $conexao que trago do arquivo bd_connect.php com os parametros de conexão ao mysql
$x = mysqli_fetch_assoc($sql); //extraio os resultados atraves do fetch_assoc que a minha consulta resultar