Ir para conteúdo

POWERED BY:

Arquivado

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

Marcos Oliveira

Montar um select de varias tabelas relacionadas

Recommended Posts

Olá pessoal estou com o seguinte problema, já venho tentando a mais de um mês e venho pedir a juda de vocês. Por Favor.

 

Tenho duas tabelas no banco de dados que preciso consultar: tb_militar e tb_especialidade.

Montei um formulário para edição de dados da pessoa com o campo <SELECT> e gostaria de povoar este <SELECT> com esses dados e a especilidade da pessoa já aparecer selecionada no <SELECT>.

já consigo resgatar todos os dados dos campos de texto somente o <SELECT> que esta me dando este trabalho.

O campo chave secundária na tb_militar é ml_fkgraduaca e o campo primário da tb_especialidade é es_codigo. Veja como montei o <SELECT> ele vem com a especilidade da pessoa repetida varias vezes, quando utilizo DISTINCT OU GROUP BY, ainda ficam repetindo a especialidade mas menos vezes que na primeira situação. VEja o código:

 

<select name="especialidade" id="especialidade">
<option>Especialidade*</option>
<?php
$combo2 = mysql_query("SELECT * FROM tb_militar INNER JOIN tb_graduacao ON tb_militar.ml_fkgraduacao = tb_graduacao.gr_codigo INNER JOIN tb_perfil ON tb_militar.ml_fkperfil = tb_perfil.pf_codigo WHERE tb_militar.ml_saram='".$saram."'");
while($prod2 = mysql_fetch_array($combo2)) { ?>
<option value="<?php echo $linha['es_codigo'] ?>" selected><?php echo $linha['es_nome'] ?></option>
<?php }
?>
</select>

 

Desse modo acima somente aparece a especialidade da pessoa.

 

Se eu retirar a clausúla WHERE aparece a especilidade repetida vária vezes..

 

Conto com a ajuda de vocês.

Vejam a estrutura da tabela..

 

m141.gif

 

 

Feliz Ano Novo....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um militar pode ter mais de uma especialidade, não ?

Qual o erro ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao sei se entendi o problema, nao i o join com a tabela especialidade.

 

Quando se faz join entre tablelas podemos ter esta duplicidade.

 

Tente :

 

Nao usar * , usar so as colunas que se quer e usar o distinct

 

Ou

 

Rever os joins se todoa as chaves foram passadas.

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao sei se entendi o problema, nao i o join com a tabela especialidade. Quando se faz join entre tablelas podemos ter esta duplicidade. Tente : Nao usar * , usar so as colunas que se quer e usar o distinct Ou Rever os joins se todoa as chaves foram passadas.

Ok Valeu mesmo...consegui fazer um paleativo.. Muito mobrigado pela ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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