Ir para conteúdo
Fórum Script Brasil
  • 0

Consulta entre duas tabelas


RRH

Pergunta

Tenho uma tabela chamada "enderecos" com dois campos onde são inseridos os códigos referentes aos logradouros, exemplo:

cod_ini=1 (aqui seria o logradouro inicial)

cod_fin=100 (aqui seria o logradouro final)

Criei uma consulta entre a tabela enderecos e a tabela logradouros assim:

$sql= "SELECT * FROM enderecos LEFT JOIN logradouros ON enderecos.cod_ini = logradouros.id_logradouro ";

Assim montei o resultado em uma tabela onde é listado no campo "Código" apenas os dados do campo cod_ini, com um tool-tip que mostra os códigos inseridos nos dois campos juntamente com a descrição dos referidos códigos.

O problema é que embora os códigos listados no tool-tio sejam diferentes, a descrição é sempre a mesma. Não tem como mostrar a descrição referente a cada código?

toold.png

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

já tentou fazendo dando continuidade ao codigo??

$resultado = mysql_query($sql);

while ($row = mysql_fetch_array($resultado)) {

echo $row['campo_aqui'];

etc...

etc..

}

não vai assim??

quando voce junta duas tabelas, é só continuar fazendo o codigo que ele puxa o campo da tabela desejada.

qualquer coisa posta o codigo ai!

Link para o comentário
Compartilhar em outros sites

  • 0

O problema não é montar a tabela com os resultados, isso eu já fiz (veja a imagem que postei no início do tópico). O problema é com o que está sendo exibido no tool-tip. No print que postei o resultado para Código Inicial e Código Final apesar de serem diferentes (100 e 1 respectivamente) a descrição, ou seja, o nome da rua é mesmo para os dois .

Link para o comentário
Compartilhar em outros sites

  • 0

não sei se é isto, mas coloca no phpmyadmin ve se aparece tudo

SELECT E . * , L . *

FROM enderecos AS E

LEFT JOIN logradouros AS L ON E.cod_ini = L.id_logradouro

ai vai aparecer tudo.. mas para limitar só colocar os campos que quer que apareça

não se se os campos tem estes nomes(altere para os nomes das tabelas)

SELECT L.codigo,L.logradouro,E.logradouro

FROM enderecos AS E

LEFT JOIN logradouros AS L ON E.cod_ini = L.id_logradouro

a tabela vai sair só o codigo / logradouro / logradouro

Link para o comentário
Compartilhar em outros sites

  • 0

Ainda não consegui, veja o código da página:

<?php
require "nivel2.php";
require "config.php";
include "cabecalho.php";


$server = $_SERVER['SERVER_NAME'];
$endereco = $_SERVER ['REQUEST_URI'];

Logger($_SESSION['UsuarioNome']. " acessou http://" . $server . $endereco);


$sql = "SELECT * FROM enderecos";
$query = mysql_query($sql);
$total = mysql_num_rows($query);



$sql2= "SELECT e.*, l.* FROM enderecos AS e LEFT JOIN logradouros AS l ON e.cod_ini = l.id_logradouro ";
$query2=mysql_query($sql2);
?>

<table align='right'>
<tr>
<td><?php echo "Registros encontrados: $total";?>
</td>
</tr>
</table>

<table class="tblGrid" width="100%" align="center">
<th colspan="14">REGISTROS</th>


<tr>
   <td align='center' class="b">Nr</td>
   <td align='center' class="b">Data</td>
   <td align='center' class="b">Hora</td>
   <td align='center' class="b">Código</td>
   <td align='center' class="b">Sst</td>
   <td align='center' class="b">Logradouro</td>
   <td align='center' class="b">Bairro</td>

</tr>

<?php

$resultado = mysql_query($sql2);

while ($linha = mysql_fetch_array($resultado)) {
?>
   <tr>
      <td align="center"><? echo str_pad($linha['id'], 5, "0", STR_PAD_LEFT);?></td>
      <td align="center"><? echo "<a href='#' class='dcontexto'>".date('d/m/y', strtotime ($linha['data_empenho']))."<span><b>Dia da Semana:</b> ".$linha['diasemana']."</span></a> "; ?></td>
      <td align="center"><? echo "<a href='#' class='dcontexto'>".date('H:i', strtotime ($linha['hora_empenho']))."<span><b>Turno:</b> ".$linha['turno']."º Turno</span></a> "; ?></td>



##########Aqui é a parte do código que não exibe o resulatdo esperado
      <td align='center'><? echo "<a href='#' class='dcontexto' style='a:link; color: #A80000;' >".$linha['cod_ini']."<span><b>Código Inicial:</b> ".$linha['cod_ini']." - ".$linha['logradouro']."<br /><b>Código Final:</b> ".$linha['cod_fin']." - ".$linha['logradouro']."</span></a></td>";?>
##########Fim



      <td align="center"><? echo $linha['id_sst']; ?></td>
      <td align="left"><? $n = strlen ($linha['logradouro']); if ($n >= 25) echo (substr ($linha['logradouro'],0,25))."..."; else echo $linha['logradouro']; ?></td>
      <td align="left"><? echo $linha['bairro']; ?></td>

<?
}
?>

</table>

</div><!-- final regula -->

Link para o comentário
Compartilhar em outros sites

  • 0

$linha['cod_ini']." - ".$linha['logradouro']."<br /><b>Código Final:</b> ".$linha['cod_fin']." - ".$linha['logradouro']

voce só repete o resultado por isto que é o mesmo ele vai pegar sempre o lograduoro da ultima consulta feita e exibir

os codigo muda são porque tem nomes diferentes cod_ini e cod_fin só que o logradouro como falei é o mesmo

talvez se fizesse um select depois que tiver os codigos, ai apareceria separado

não conheço a tabela de logradouros, mas seria algo como

$sqlEndereco= "SELECT id,logradouro from logradouros where id in(".$linha['cod_ini'].",".$linha['cod_fin'].")";

deveria aparecer apenas os dois logradouros e os codigos, ai voce exibe os dois

tenta colocar no phpmyadmin com os campos corretos e ve se exibe os nomes a serem exibidos

Link para o comentário
Compartilhar em outros sites

  • 0
$linha['cod_ini']." - ".$linha['logradouro']."<br /><b>Código Final:</b> ".$linha['cod_fin']." - ".$linha['logradouro']

voce só repete o resultado por isto que é o mesmo ele vai pegar sempre o lograduoro da ultima consulta feita e exibir

os codigo muda são porque tem nomes diferentes cod_ini e cod_fin só que o logradouro como falei é o mesmo

talvez se fizesse um select depois que tiver os codigos, ai apareceria separado

não conheço a tabela de logradouros, mas seria algo como

$sqlEndereco= "SELECT id,logradouro from logradouros where id in(".$linha['cod_ini'].",".$linha['cod_fin'].")";

deveria aparecer apenas os dois logradouros e os codigos, ai voce exibe os dois

tenta colocar no phpmyadmin com os campos corretos e ve se exibe os nomes a serem exibidos

Prmeiramente obrigado por tentar me ajudar, mas não entendi o que você disse pra fazer!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...