COMO NÃO REPETIR ID NO INNER JOIN SQL
galera estou construindo um sistema, mas quando vou listar os dados das tabelas do banco de dados, utilizando inner join, a listagem repete os dados, como fazer para não repetir os dados da primeira tabela. O banco de dados contem duas tabelas relacionadas.
[img]http://arquivo.devmedia.com.br/forum/imagem/419742-20150321-124042.png[/img]. <?php require 'conecta.php'; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Listagem de correspondências</title> <link rel="stylesheet" href="index_files/css3menu0/style.css" type="text/css" /><style type="text/css">._css3m{display:none}</style> <link href="estilotabelas.css" rel="stylesheet" type="text/css" /> <script type="text/javascript"> function valida(){ var cmb= document.getElementById('busca'); if(cmb.options[cmb.selectedIndex].value == ''){ alert('Informe uma opção de busca'); document.getElementById('busca').focus(); return false; } var inp=document.getElementById('parampesq'); if(inp.value==''){ alert('digite um texto para pesquisar'); document.getElementById('busca').focus(); return false; } return true; } </script> </head> <body style="background-color:#EBEBEB"> <ul id="css3menu0" class="topmenu"> <li class="topfirst"><a href="cad.php" style="height:32px;line-height:32px;"> <img src="index_files/css3menu0/newspaper.png" alt=""/>Cadastro</a></li> <li class="topmenu"><a href="listacorrespondencias.php" style="height:32px;line-height:32px;"><img src="index_files/css3menu0/drawer2.png" alt=""/>Listar correspondências</a></li> <li class="toplast"><a href="#" style="height:32px;line-height:32px;"><img src="index_files/css3menu0/table21.png" alt=""/>Estatísticas</a></li> </ul><p class="_css3m"><a href="http://css3menu.com/">html dropdown menu</a> by Css3Menu.com</p> <!-- End css3menu.com BODY section --> <h4 id="css3menu0">Correspondências cadastradas</h4> <h4 align="right"> <a href ="cad.php">voltar</a> | <a href ="logout.php">sair</a></h4 > <div id="formulario2"> <form name="form2" method="post" onsubmit="return valida(this)"action="pesquisa.php"> <table width="675" align="left" class="borda" cellpadding="0" cellspacing="0" border="0" background="#f8ac00" > <tr> <td width="59"><label >BUSCA </label></td> <td width="297" ><select name="busca" id="busca"> <option value=""> </option> <option value="l">lacre</option> <option value="m">nº malote</option> <option value="s">data saida</option> <option value="e">encaminhado por</option> <option value="d">destinatario </option> <option value="r">data de recebimento</option> <option value="p">recebido por </option> </select></td> <td width="306" ><input type="text" name="parampesq" id="parampesq" placeholder="insira sua pesquisa aqui"value=""/></td> <td width="442" colspan="2" align="center"> <input type="submit" name="sbm_enviar" id="sbm_enviar" value="Buscar " /> <input type="reset" name="rst_limpar" id="rst_limpar" value="Limpar" /></td> </tr> </table> </form> <label name="formulario" >Listagem de guias </label> <table cellpadding="2"> <tr> <th >Código</th> <th >lacre</th> <th >nº malote</th> <th >dt saida</th> <th >encaminhado por</th> <th >destinatario</th> <th >dt recebimento</th> <th >recebido por</th> <th> objeto </th> <th> destino </th> <th >ações</th> </tr> <?php $cor= '#ffd'; $query= 'SELECT guia.id, guia.lacre, guia.lacre, guia.nmalote, guia.dtsaida, guia.encaminhadopor, guia.destinatario,guia.dtrecebimento, conteudo.objeto, conteudo.destino FROM guia INNER JOIN conteudo ON (conteudo.id_guia=guia.id)'; $result= mysql_query($query, $conexao); while($dados= mysql_fetch_object($result)){ $cor= $cor == '#ffd' ? '#ddb' : '#ffd'; echo "<tr style=\"background-color: {$cor}\"> <td>{$dados->id}</td> <td>{$dados->lacre}</td> <td>{$dados->nmalote}</td> <td>" . implode('/', array_reverse(explode('-', $dados->dtsaida))) . "</td> <td>{$dados->encaminhadopor}</td> <td>{$dados->destinatario}</td> <td>" . implode('/', array_reverse(explode('-', $dados->dtrecebimento))) . "</td> <td>{$dados->recebidopor}</td> <td>{$dados->objeto}</td> <td>{$dados->destino}</td> <td><a href=\"altera.php?id={$dados->id}\">Alterar</a> </td> </tr>"; } ?> </table> </div> </body> </html>
Leandro Soares
Curtidas 0
Respostas
Diego Segismundo
21/03/2015
Bom dia!
Poste seu join para analisarmos.
Poste seu join para analisarmos.
GOSTEI 0
Thiago Santana
21/03/2015
Utilize o distinct no seu select
GOSTEI 0
Alan Mario
21/03/2015
PHP com sql server?
GOSTEI 0
Marisiana Battistella
21/03/2015
Leandro, pelo que entendi, você precisa incluir o GROUP BY para evitar essas repetições. Veja se o exemplo atende:
SELECT guia.id, guia.lacre, guia.nmalote, guia.dtsaida, guia.encaminhadopor, guia.destinatario, guia.dtrecebimento, conteudo.objeto, conteudo.destino FROM guia INNER JOIN conteudo ON (conteudo.id_guia = guia.id) GROUP BY guia.id, guia.lacre, guia.nmalote, guia.dtsaida, guia.encaminhadopor, guia.destinatario, guia.dtrecebimento, conteudo.objeto, conteudo.destino ORDER BY guia.id
GOSTEI 0
Marisiana Battistella
21/03/2015
Leandro, o exemplo que passei resolve o problema?
GOSTEI 0