Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

josenilson

Retorno de valores da tabela

Recommended Posts

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
}
?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

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!

Compartilhar este post


Link para o post
Compartilhar em outros sites
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);
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}



?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

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. 

Compartilhar este post


Link para o post
Compartilhar em outros sites
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 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por iguulima
      Bom dia a todos, tenho em meu banco de dados uma tabela de pedidos, onde nesse pedidos estão salvos as id's dos produtos que foram selecionados pelo usuário, gostaria de saber se tem alguma forma utilizando um while que possa selecionar os produtos mais pedidos dessa tabela, não tenho ideia por onde começar. Consigo listar todos apenas mas não sei como selecionar os que são mais pedidos.
    • Por iguulima
      Ola a todos,
      Estou com uma dúvida e ja tentei de tudo que estão dentro das minhas limitações de conhecimento. Tenho um laço de repetição While sendo executado e quero que uma Variavel seja executada apenas uma vez dentro desse laço. Existe essa possibilidade. Obrigado a todos. Segue o código:

       
      <?php $consult = $row['id']; $sql = "SELECT * FROM upload_data WHERE USER_CODE = '$consult' ORDER BY id ASC"; $resultadoimg = mysql_query($sql); $numero_registros = mysql_num_rows($resultadoimg); while($registrosimg = mysql_fetch_array($resultadoimg)) { ?> <li data-target="#carousel-custom" data-slide-to="0" <?php ele precisa ser executado uma unica vez aqui?>><img src="" alt=""></li> <?php } ?>  
    • Por eduardodsilvaq
      Não sei oq tem de errado.
       
      O erro:
      Notice: Undefined index: name in C:\AppServ\www\includes\functions.php on line 105 A linha do erro:
      <td width="106"><div class="fonte">'. $row["name"] .'</div></td> O codigo:
      function mini_ranking (){ $PDO = db_connect_gamedata(); $sql = "SELECT name baselevel FROM u_hero WHERE class <> '80' ORDER BY baselevel Desc Limit 6"; $result = $PDO->query($sql); $guild = $result->fetchAll(PDO::FETCH_ASSOC); $i = 1; echo '<table width="153" height="0" border="0">'; foreach($guild as $row) { echo '<tr> <td width="0" height="0" align="center"><div class="fonte">'. $i++ . '</div></td> <td width="106"><div class="fonte">'. $row["name"] .'</div></td> <td width="20"><div class="fonte">'. $row["baselevel"] .'</div></td> <tr>'; } echo '</table>'; }  
    • Por danilo759
      Estou precisando saber o percentual de imagens que está no diretório e estou com dificuldades. Alguém pode me ajudar dar uma luz?

       
      $qry_canal = $con->query("SELECT * FROM grade, dados WHERE grade.id = dados.id AND grade.canal IN('HBO','GLO','TNT') GROUP BY dados.titulo"); $counter = 0; while($rows = $qry_canal->fetch(PDO::FETCH_ASSOC)){ $id = $rows['id']; $sigla = $rows['canal']; $sk = substr($rows['sk'], 0, 14); // Busca total de programas por canal /* ---------------------------------------------------------------- */ $qry_b = $con->query("SELECT * FROM grade, dados WHERE grade.id = dados.id AND grade.canal LIKE '".$sigla."' GROUP BY dados.titulo"); $total_programas = $qry_b->rowCount(); if(empty($serieskey)) { $prog_id = "$id"; } else{ $prog_id = "$sk"; } // VERIFICA SE EXISTE IMAGEM /* ---------------------------------------------------------------- */ if(file_exists("/imagens/".$prog_id."_epg.jpg")){ $arr_img[] = "".$counter++.""; } $total_fotos = "".count($arr_img).""; echo "".($total_fotos * 100 ) / $total_programas."% <br />"; }  
    • Por Hulkstar
      Possuo um ranking de vitoria/derrota que é trazido através do php com while do banco de dados,tenho dois campos chamados "vencedor" e "perdedor",como posso contar dentro do while os registros iguais que possuem por exemplo "vencedor -> 1" e "perdedor -> 2",caso exista esse registro dessa forma citada 50 vezes,preciso que dentro do while ele me informe que o registro existe 50 vezes.Obrigado pela ajuda.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.