Ir para conteúdo

POWERED BY:

Arquivado

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

diogomancha

[Resolvido] Busca com consulta em duas tabelas - PHP + MYSQL

Recommended Posts

Boa noite usuários,

 

Estou fazendo um sistema de busca em um banco MySQL com a seguinte estrutura

Tabela cliente

ID

nomecliente

 

Tabela Processo

ID

cliente (gravado somente o id do cliente)

outros dados

 

Estou fazendo um sistema de busca na tabela de processo, usando o seguinte código:

 

$sql = "SELECT * FROM processos WHERE numero like '".$numero."' and idcliente like '".$idcliente."%' and poloativo like '%".$poloativo."%' and polopassivo like '%".$polopassivo."%' and ano like '".$ano."' and materia like '".$materia."' and competencia like '".$competencia."' and estado like '".$estado."' and cidade like '".$cidade."' and vara like '".$vara."' ORDER BY ano  ASC"; 



$resultado = mysql_query($sql)
or die ("Não foi possível realizar a consulta ao banco de dados");
while ($linha=mysql_fetch_array($resultado)) {


$numero = $linha["numero"];
$idcliente = $linha["idcliente"];
$poloativo = $linha["poloativo"];
$polopassivo = $linha["polopassivo"];
$ano = $linha["ano"];
$materia = $linha["materia"];
$data = $linha["data"];

echo '<div class="post">';
echo '						<div style="clear: both;"> </div>';
echo '						<div class="entry">';
echo ' Cliente: '.$idcliente.' - Processo: '.$numero.' ';
echo '	</div>					</div>';

}

Está tudo funcionando da maneira como eu desejei, entretanto, preciso que quando retorne as consultas no lugar do ID do cliente(que busca na tabela processo) aparece o nome do cliente, para isso terei que realizar uma consulta na tabela clientes com seu ID cadastrado na tabela processos e então exibir o nome correspondente.

 

Pesquisei sobre LEFT JOIN, mas não logrei com êxito ao utiliza-lo.

 

O ideal seria se fosse possível renomear todos os IDS da tabela processo para os nomes correspondentes dos clientes, e conseguisse na própria busca digitar o nome do cliente e a consulta retornar como se fosse o nome do cliente na tabela processos, iria poupar-me de utilizar o value select, e substituir por input text, muito mais prático.

 

 

Obrigado,

 

Diogo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use INNER JOIN, vai ficar mais ou menos assim

 

$sql = "SELECT p.*,c.nome_coluna FROM processos AS p
INNER JOIN nome_tb_cliente AS c ON c.idcliente = p.idcliente
WHERE p.numero = '".$numero."' and p.idcliente like '".$idcliente."%' and p.poloativo like '%".$poloativo."%' and p.polopassivo like '%".$polopassivo."%' and p.ano = '".$ano."' and p.materia = '".$materia."' and p.competencia = '".$competencia."' and p.estado = '".$estado."' and p.cidade = '".$cidade."' and p.vara = '".$vara."' ORDER BY p.ano ASC"; 

 

Depois para pegar o nome é só fazer assim:

 

$linha['nome_coluna'];

 

Espero que ajude

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei fazer desta forma:

$sql = "SELECT p.*, c.nome FROM processos AS p
INNER JOIN clientes AS c ON p.idcliente = c.id WHERE p.numero = '".$numero."' and c.nome like '".$idcliente."%' and p.poloativo like '%".$poloativo."%' and p.polopassivo like '%".$polopassivo."%' and p.ano = '".$ano."' and p.materia = '".$materia."' and p.competencia = '".$competencia."' and p.estado = '".$estado."' and p.cidade = '".$cidade."' and p.vara = '".$vara."' ORDER BY p.ano ASC";

 

Porém a consulta não retorna nenhum resultado, mesmo colocando idcliente = %.

 

Obrigado pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu td certo ok, mto obrigado companheiro.

 

Entretanto surgiu mais uma dúvida.

 

Por exemplo, quando eu utilizo o INNER JOIN ocorre de existir duas colunas em tabelas diferentes com o mesmo nome, daí quando eu vou chamar a linha $linha["nome"], poderá tanto exibir o nome do cliente ou de uma cidade por exemplo.

 

Teria como individualizar a chamada das linhas ?

 

Obrigado.

 

Diogo

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.