Jump to content
Fórum Script Brasil
  • 0

Consulta entre duas tabelas


RRH

Question

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 to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

  • 0

resumindo que as variaveis são as mesmas

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

por isto pega o mesmo logradouro

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...