Ir para conteúdo

POWERED BY:

Arquivado

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

BrunoAlterosa

Inner Join

Recommended Posts

Ola galera, sou novo aqui no forum, tenho uma duvida com INNER JOIN...

è o seguinte, ue tenho um formulario de cadastro de clientes de uma funeraria, e la eles tem um plano aonde posso cadastrar 10 dependentes para um cliente.

eu nao estou conseguindo fazaer o INNER JOIN corretamente, pois a hora q eu seleciono um cliente ele seleciona junto os dependentes, so que de forma continua: ou seja, ele mostra o mesmo dependente inumeras vezes, e eu quero q apareça apenas uma vez o nome de cada dependente

 

obrigado galera, quem puder me ajuda ae

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Publique a descrição das tabelas, chaves relacionamentos etc.

Publique a query usda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola, olha o codigo

 

<code>

<HTML>
<HEAD>
<TITLE>New Document</TITLE>
<style type="text/css">

@import url("estilo_editar.css");

</style>
</HEAD>
<body bgcolor="#409722">
<div id="apDiv1" style="border:solid">
<p align="center" class="style2">Funeraria Santa Rita de Cassia</div>
</font>
<div id="apDiv7" style="border:solid">

<p align="center"><font size="6"><strong>Consulta Clientes</strong></p></font>
<div id="apDiv8" align="center"style="border:solid">

<?php

$id= $_GET['idcliente'];

$con = mysql_connect("localhost","root","");

mysql_select_db("funeraria",$con);

$result = mysql_query("SELECT * FROM cliente WHERE idcliente = $id");

echo "<fieldset>";
echo "<legend><b>Dados Pessoais</b></legend>";
while($row = mysql_fetch_array($result)){
echo "<table border='0'>";
echo "<tr> ";
echo "<td></td>";
echo " <td width='50'><b>Nome:</td>"."<td width='320'> <p align='left'>".$row['nome']."<br>"."</td>";
echo "<td><b>CPF: </td>"."<td width='130'><p align='left'>".$row['cpf']."</td>";
echo "<td><b>---o: </td><td width='100'> <p align='left'>".$row['---o']."</td>";
echo "</tr>";
echo "</table>";
echo "<table border='0'>";
echo "<tr>";
echo "<td width='30'><b>RG: </td><td width='120'>".$row['rg']."</td>";
echo "<td width='60'><b>Telefone: </td><td width='125'>".$row['telefone']."</td>";
echo "<td width='50'><b>Celular: </td><td width='100'>".$row['celular']."</td>";
echo "</tr>";
echo "</table>";
echo "<table border='0'>";
echo "<tr>";
echo "<td>Endereço: </td><td colspan='2' width='350'>".$row['endereco']."</td>";
echo "<td width='22'><b>nº: </td><td width='70'>".$row['num']."</td>";
echo "<td width='52'><b>Bairro: </td><td width='260'>".$row['bairro']."</td>";
echo "<tr>";
echo "</table>";
echo "<table border='0'>";
echo "<tr>";
echo "<td width='50'><b>Estado: </td><td width='55'>".$row['estado']."</td>";
echo "<td width='50'><b>Cidade: </td><td width='310'>".$row['cidade']."</td>";
echo "<td width='30'><b>Cep: </td><td width='90'>".$row['cep']."</td>";
echo "<td width='130'><b>Data Nascimento: </td><td width='100'>".$row['data_nasc']."</td>";
echo "<td width='50'><b>Estado: </td><td width='55'>".$row['estado_nasc']."</td>";
echo "</table>";
echo "<table border='0'>";
echo "<tr>";
echo "<td width='100'><b>Estado Civil: </td><td width='100'>".$row['estado_civil']."</td>";
echo "<td width='125'><b>Data Casamento: </td><td width='165'>".$row['data_casamento']."</td>";
echo "<td width='50'><b>Estado: </td><td width='55'>".$row['estado_casamento']."</td>";
echo "<td width='50'><b>Cidade: </td><td width='310'>".$row['cidade_casamento']."</td>";

echo "</table>";
echo "</fieldset>";
echo "<br><br>";

echo "<fieldset>";
echo "<legend><b>Dados Empresariais</legend>";
echo "<table border='0'>";
echo "<tr>";
echo "<td width='135'><b>Local de Trabalho: </td><td width='230'>".$row['local_trabalho']."</td>";
echo "<td width='50'><b>Profissão: </td><td width='350'>".$row['profissao']."</td>";
echo "</table>";
echo "<table border='0'>";
echo "<tr>";
echo "<td width='50'><b>Cargo: </td><td width='350'>".$row['cargo']."</td>";
echo "<td width='50'><b>Estado: </td><td width='60'>".$row['estado_trabalho']."</td>";
echo "<td width='50'><b>Cidade: </td><td width='350'>".$row['cidade_trabalho']."</td>";
echo "</table>";
echo "<table border='0'>";
echo "<tr>";
echo "<td width='30'><b>Cep: </td><td width='100'>".$row['cep_trabalho']."</td>";
echo "<td width='50'><b>Telefone: </td><td width='60'>".$row['telefone_trabalho']."</td>";
echo "</table>";
}
echo "</fieldset>";
echo "<br><br>";
?>
</div>
<div id="apDiv9" align="center"style="border:solid">
<?php
$dep = mysql_query("SELECT * FROM cliente INNER JOIN dependentes ON '$id' = codigo");
echo "<fieldset>";
echo "<legend><b>Dependentes<b></legend>";

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

if($row['idcliente'] == $row['codigo']){
echo "<table width='1100'border='1'>";
echo "<tr>";
echo "<td width='70'><b>Parentesco: </td><td width='100'>".$row['parentesco']."</td>";
echo "<td width='50'><b>Nome: </td><td width='250'>".$row['nome_dep']."</td>";
echo "<td width='50'><b>CPF: </td><td width='50'><p>".$row['cpf_dep']."</td>";
echo "<td width='50'><b>Nascimento: </td><td width='50'>".$row['nascimento_dep']."</td>";

echo "</table>";
}else{

}
}
echo"</fieldset>";

mysql_close($con);


?>

</div>
</div>
</BODY>
</HTML>

</code>


o problema começa aki

<?php
$dep = mysql_query("SELECT * FROM cliente INNER JOIN dependentes ON '$id' = codigo");
echo "<fieldset>";
echo "<legend><b>Dependentes<b></legend>";

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

if($row['idcliente'] == $row['codigo']){
echo "<table width='1100'border='1'>";
echo "<tr>";
echo "<td width='70'><b>Parentesco: </td><td width='100'>".$row['parentesco']."</td>";
echo "<td width='50'><b>Nome: </td><td width='250'>".$row['nome_dep']."</td>";
echo "<td width='50'><b>CPF: </td><td width='50'><p>".$row['cpf_dep']."</td>";
echo "<td width='50'><b>Nascimento: </td><td width='50'>".$row['nascimento_dep']."</td>";

echo "</table>";
}else{

}
}
echo"</fieldset>";

 

eu usei o if, ai ele retornou certo, mais sei q tem algo errado pois na hora de motrar ela fica toda desconfigurada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Este select deve uma síntaxe do tipo


SELECT * 
FROM cliente  
   INNER JOIN dependentes  ON 
   depedente.codigo =:Cliente.codigo 
Where cliente.codigo ='$id'

Compartilhar este post


Link para o post
Compartilhar em outros sites

ue cara nao deu certo aki nao, tipo deixa eu explicar melhor essa parte das tabelas

existe uma tabela chamada cliente e outra dependentes, eu fiz uma tela de cadastro onde eu cadastro um cliente e varios dependentes.

na tablea cliente eu tenho o "Id", e na tabela dependentes eu tenho o campo "codigo".

Toda vez que e eu faço insert ele pega o id do cliente e atribui para o codigo na tabela dependentes.

 

ai eu fiz um INNER JOIN para selecionar todos os dependentes de um cliente especifico que eu selecionei.

o problema é que na hora de appresentar os dependentes ele faz o loop de forma errada.

 

Exemplo: se eu tenho 1 dependente de um cliente, ele mostra esse mesmo dependente 14 vezes

 

Deu para entender o erro?


cara consegui resolver o problema, mais se quiser me mostrar uma solução sua, talvez seje melhor do q a minha

 

 

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, creio que o problema era php, e não conheço php.

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.