Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 102
Nome: Erivelton Ferreira
Descrição do site: A melhor web rádio da internet (Radio Killer)
Sexo: Masculino
Localização: Apuiarés - CE
Contato:

Busca Avançada em duas tabelas

15-01-2012 12:22

Olá, na tabela g_fornecedores guardo os dados do usuario
e na tabela g_atividades_cadastros guardo as atividades selecionadas pelo usuário na hora do cadastro

Na tabela g_fornecedores, fica guardado dados como CPF e CNPJ, senha, Email, usuário, telefone etc.
e em uma etapa do cadastro o usuário irá selecionar as atividades na qual ela atua, são mais se uma atividade sempre, então em um foreach ele repete os inserts de acordo com o tanto de atividades selecionadas, até ai tudo bem, ele insere as atividades na tabela g_atividades_fornecedores, nos campos cpf_cnpj ( que por meio deste irá identificar as atividades de cada fornecedor por CPF_CNPJ(coluna), e na coluna atividades_fornecedores, ficará armazenado as atividades. até ai está perfeito.
agora o problema vem, estou precisando de uma busca de fornecedor por atividade.

Em um select, será exibido as atividades da tabela g_atividades, que são as atividades para escolher no cadastro. ai ele deverá mostrar apenas os fornecedores que tem aquela atividade escolhida, exemplo, escolho um fornecedor que fornece ARTIGOS DE ÓTICA ai no resultado irá mostrar todos os fornecedores que fornecem artigos de otica.
tentei fazer de um jeito mais nao deu certo claro, ta sem logica até.

if (isset($_POST["busca_por_atividade"])){ $atividade = $_POST["atividade"]; $select = "SELECT cnpj_cpf, atividades_fornecedores FROM g_atividades_fornecedores WHERE `atividades_fornecedores` LIKE '$atividade'"; $result = mysql_query($select); while($linhas_destaque = mysql_fetch_array($result)){ $cpf_cnpj = $linhas_destaque['cnpj_cpf']; $atividades_fornecedores = $linhas_destaque['atividades_fornecedores']; } // Informações da query $campos_query = "tipo_pessoa, razao_social, cidade, telefone, codigo_fornecedor, cpf_cnpj"; $final_query = "FROM g_fornecedores WHERE `cpf_cnpj` LIKE '$cpf_cnpj' ORDER BY tipo_pessoa, razao_social, cidade ASC"; }else{ $campos_query = "tipo_pessoa, razao_social, cidade, telefone, codigo_fornecedor, cpf_cnpj"; $final_query = "FROM g_fornecedores ORDER BY tipo_pessoa, razao_social, cidade ASC"; } // Maximo de registros por pagina $maximo = 22; // Declaração da pagina inicial $pagina =@$_GET["pagina"]; if($pagina == "") { $pagina = "1"; } // Calculando o registro inicial $inicio = $pagina - 1; $inicio = $maximo * $inicio; // Conta os resultados no total da query $strCount = "SELECT COUNT(*) AS 'num_registros' $final_query"; $query = mysql_query($strCount); $row = mysql_fetch_array($query); $total = $row["num_registros"]; ################################################################################### // INICIO DO CONTEÚDO echo " <div class='in'> <table width='780' border='0' cellspacing='0' cellpadding='10' class='table_main' > <tr style='background-color:#d9d8d8; font-size:14px;'> <td width='15'><strong>TIPO</strong></td> <td width='364'><strong>RAZÃO SOCIAL</strong></td> <td width='130'><strong>CIDADE</strong></td> <td width='80'><strong>FONE</strong></td> "; if($tipo == 2) { echo "<td width='50'><strong>AÇÕES</strong></td></tr> "; } else{ echo " <td width='0'><strong></strong></td></tr> "; } // Realizamos a query $sql = mysql_query("SELECT $campos_query $final_query LIMIT $inicio,$maximo"); // Exibimos os nomes dos produtos e seus repectivos valores while ($linha = mysql_fetch_object($sql)) { echo "<tr class='gray'> <td>".$linha->tipo_pessoa."</td> <td>".$linha->razao_social."</td> <td>".$linha->cidade."</td> <td>".$linha->telefone."</td>"; //se o usuario logado for administrador mostra acções. se nao for nao mostra nada claro if($tipo == 2) { echo "<td> <a href='/deletar_fornecedor/". $linha->codigo_fornecedor ."/". $linha->cpf_cnpj."' title='Deletar este fornecedor'> <img src='imagens/deletar_registro.png' width='16' height'16' alt='Deletar Fornecedor' /> </a> <a href='/editar_fornecedor/".$linha->codigo_fornecedor."' title='Editar cadastro do fornecedor'> <img src='imagens/editar_registro.png' width='16' height'16' alt='Deletar Fornecedor' /> </a> </td></tr>"; } else{ echo "<td></td></tr>";} } echo "</table></div>"; // FIM DO CONTEUDO ################################################################################### $menos = $pagina - 1; $mais = $pagina + 1; $pgs = ceil($total / $maximo); if($pgs > 1 ) { echo "<div class='pagination blue' style='width:600px; padding-top:10px; padding-left:25px;'>"; // Mostragem de pagina if($menos > 0) { echo "<a href='/gerenciar_fornecedores/$menos'>&laquo; Anterior</a>&nbsp; "; } // Listando as paginas for($i=1;$i <= $pgs;$i++) { if($i != $pagina) { echo " <a href='/gerenciar_fornecedores/".($i)."' class='number'>$i</a>"; } else { echo "<a class='number current' href='#'> ".$i."</a>"; } } if($mais <= $pgs) { echo " <a href='/gerenciar_fornecedores/$mais'>&raquo; Próxima</a>"; } } echo "</div>"; ?>

MOVIDO PARA MYSQL
0
www.radiokiller.com.br
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17721
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Busca Avançada em duas tabelas

15-01-2012 15:03

Vamos supor que nas atividades você tenha: id e atividade

em fornecedor, você tem que ter um campo relacionado ao id de atividades

Ai quando você selecionar o id da atividade, vai fazer outra consulta para procurar os fornecedores que tenham o mesmo id. Mas tem que ver qual lógica que você fez para essa busca.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 102
Nome: Erivelton Ferreira
Descrição do site: A melhor web rádio da internet (Radio Killer)
Sexo: Masculino
Localização: Apuiarés - CE
Contato:

Busca Avançada em duas tabelas

15-01-2012 16:54

Sim, exatamente, porém a tentativa que fiz só retorna um registro.
0
www.radiokiller.com.br
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17721
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Busca Avançada em duas tabelas

15-01-2012 17:46

Como você fez para carregar a segunda consulta? Está online?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 102
Nome: Erivelton Ferreira
Descrição do site: A melhor web rádio da internet (Radio Killer)
Sexo: Masculino
Localização: Apuiarés - CE
Contato:

Busca Avançada em duas tabelas

15-01-2012 21:00

A primeira consulta seleciona o cpf_cnpj do usuario, e passa para a segunda consulta, que já está embutida no script de paginação, coloco um where para os cpf e cnpj, porem desse jeito que eu fiz ta obvio que so vai mostrar um cpf_cnpj
0
www.radiokiller.com.br
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17721
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Busca Avançada em duas tabelas

15-01-2012 21:06

Talvez seja melhor para você usar aqueles combos que atualizam de acordo com o outro. Tem um script no link abaixo, ele é mais relacionado a relação "estado e cidade", mas, basta você passar o valor de referência para busca e terá o mesmo efeito.

combobox-atualizar-valores-do-combo-sel ... _2604.html
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Bing [Bot]