Ir para conteúdo

POWERED BY:

Arquivado

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

D'Emery

Organizar consulta com duas tabelas MySQL

Recommended Posts

Olá Povo,

 

Gostaria de saber se há como organizar uma listagem pela Categoria e pela Loja (em Estado, Cidade e depois Bairro).

 

Deixa eu explicar melhor, eu tenho na verdade 4 tabelas distintas.

 

Uma chamada de "empresa" aonde já somente o nome da Empresa.

A segunda é a "empresa_loja", onde há todas as informações de contato, endereço e definindo o Estado, Cidade e Bairro, e ela (a tabela) esta orientada pelo CNPJ que só pode ser cadastrada somente uma loja, ou melhor um CNPJ.

Uma terceira tabela chamada de "empresa_loja_categoria", onde é cadastrada o CNPJ da loja e uma categoria, então nela pode ser cadastrada um CNPJ com várias categorias (exemplo: resultado 1: 000.000.000/0000-00 -> Código da Categoria 01 (Supermecado); resultado 2: 000.000.000/0000-00 -> Código da Categoria 02 (Farmácia)), ela não está orientada pelo CNPJ e sim por um código.

E por último, uma tabela chamada de "empresa_categoria", que irá determinado a Categoria de acordo com o Código.

 

Para quem não entendeu, a Empresa X tem três lojas, cada uma tem um CNPJ diferente. E cada Loja tem várias Categorias. O que eu quero? (Eis a Questão!?!?)

 

Eu tô querendo que ao Usuário procurar uma Empresa, ele irá selecionar dois campos obrigatórios e um opcional. Os dois obrigatórios são: a Categoria e o Estado; E o opcional é: a Cidade. Então ao ele selecionar a Categoria e o Estado gostaria que a listagem ficasse organizada em Estado, depois "suborganizada" em Cidade, e por último em Bairro. Exemplo:

 

  • Pernambuco

    • Jaboatão dos Guararapes

      • Candeias

      • Empresa 1
      • Empresa 2
      • Empresa 3
    • Piedade

      • Empresa 1
      • Empresa 2
    • Prazeres

      • Empresa 1
      • Empresa 2
      • Empresa 3
      • Empresa 4
  • Olinda

    • Bairro Novo

      • Empresa 1
      • Empresa 2
      • Empresa 3
      • Empresa 4
    • Jardim Atlântico

      • Empresa 1
      • Empresa 2
      • Empresa 3
    • Rio Doce

      • Empresa 1
      • Empresa 2
      • Empresa 3
      • Empresa 4
      • Empresa 5
  • Recife

    • Boa Viagem

      • Empresa 1
      • Empresa 2
      • Empresa 3
      • Empresa 4
      • Empresa 5
    • Madalena

      • Empresa 1
      • Empresa 2
      • Empresa 3
      • Empresa 4
      • Empresa 5
    • Parnamirim

      • Empresa 1
      • Empresa 2
      • Empresa 3
      • Empresa 4
      • Empresa 5
    • Santo Amaro

      • Empresa 1
      • Empresa 2
      • Empresa 3
      • Empresa 4
      • Empresa 5

As tabelas estão assim:

 

  • empresa

    • codigo (Primário)
    • nome
  • empresa_loja

    • cnpj (Primário)
    • codigo_empresa
    • ddd
    • telefone
    • endereco
    • codigo_estado
    • codigo_cidade
    • codigo_bairro
  • empresa_loja_categoria

    • codigo (Primário)
    • cnpj
    • codigo_categoria
  • empresa_categoria

    • codigo (Primário)
    • categoria

O usuário seleciona o codigo_categoria e o codigo_estado, e opcionalmente o codigo_cidade. Como faço essa organização?

 

Aguardo ajuda!!!

 

Oh galera, ajuda aí urgência!!! :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

D'Emery, por favor leia as regras:

http://forum.imasters.com.br/index.php?app=core&module=help

 

Todos também trabalhamos e temos os nossos proprios projetos.

Por isso não dá para 'pedir urgência' num trabalho voluntário, onde compartilhamos experiências, e movimentamos idéias.

 

Aguarde alguém que saiba lhe responder, eu ao menos não gosto de 'ser cobrado por algo que não devo'.

 

[]s !

 

 

edit:

posta a query que você tentou montar.

para ordenar por 2 campos ou mais, basta separa-los por ,

 

ORDER BY estado ASC, cidade ASC, bairro ASC

Compartilhar este post


Link para o post
Compartilhar em outros sites

Peço Desculpas e ao mesmo tempo, Obrigado! :D

 

Esta assim o código!

 

<?
if($_POST['codigo_categoria'] != "" && $_POST['codigo_estado'] != ""){
	$categoria_codigo = $_POST['codigo_categoria'];
	$estado_codigo = $_POST['codigo_estado'];
	
	$l_categorias = "SELECT * FROM empresa_loja_categoria WHERE codigo_categoria='$categoria_codigo'";
	$query_l_categorias = mysql_query($l_categorias);
		if($query_l_categorias){
			$rows_l_categorias = mysql_num_rows($query_l_categorias);
				if($rows_l_categorias > 0){
?>
<br />
<br />

<div class="corpo">
	<div class="titulo">
		<span class="titulo">
			Pesquisa de Empresas
		</span>
	</div>
	
	<table class="listagem">
		<?
					for($lc=0; $lc<$rows_l_categorias; $lc++){
						$l_categoria_cnpj = mysql_result($query_l_categorias,$lc,cnpj);
							if($l_categoria_cnpj){
								$lojas = "SELECT * FROM empresa_loja WHERE cnpj='$l_categoria_cnpj'";
								$query_lojas = mysql_query($lojas);
									if($query_lojas){
										$loja_nome = mysql_result($query_lojas,0,nome);
										$loja_codigo_empresa = mysql_result($query_lojas,0,codigo_empresa);
											if($loja_codigo_empresa){
												$empresas = "SELECT * FROM empresa WHERE codigo='$loja_codigo_empresa'";
												$query_empresas = mysql_query($empresas);
													if($query_empresas){
														$empresa_nome = mysql_result($query_empresas,0,nome);
													}
											}
										$loja_ddd = mysql_result($query_lojas,0,ddd);
										$loja_telefone = mysql_result($query_lojas,0,telefone);
										$loja_endereco = mysql_result($query_lojas,0,endereco);
										$loja_numero = mysql_result($query_lojas,0,numero);
										$loja_complemento = mysql_result($query_lojas,0,complemento);
										$loja_cep = mysql_result($query_lojas,0,cep);
										$loja_codigo_estado = mysql_result($query_lojas,0,codigo_estado);
											if($loja_codigo_estado){
												$estados = "SELECT * FROM estado WHERE codigo='$loja_codigo_estado'";
												$query_estados = mysql_query($estados);
													if($query_estados){
														$loja_estado = mysql_result($query_estados,0,estado);
														$loja_uf = mysql_result($query_estados,0,uf);
													}
											}
										$loja_codigo_cidade = mysql_result($query_lojas,0,codigo_cidade);
											if($loja_codigo_cidade){
												$cidades = "SELECT * FROM cidade WHERE codigo='$loja_codigo_cidade'";
												$query_cidades = mysql_query($cidades);
													if($query_cidades){
														$loja_cidade = mysql_result($query_cidades,0,cidade);
													}
											}
										$loja_codigo_bairro = mysql_result($query_lojas,0,codigo_bairro);
											if($loja_codigo_bairro){
												$bairros = "SELECT * FROM bairro WHERE codigo='$loja_codigo_bairro'";
												$query_bairros = mysql_query($bairros);
													if($query_bairros){
														$loja_bairro = mysql_result($query_bairros,0,bairro);
													}
											}
									}
							
							$ip = $_SERVER['REMOTE_ADDR'];
							$dataAtual = date("Y-m-d");
							$horaAtual = date("H:i:s");
							$insert = "INSERT INTO empresa_estatistica (codigo_empresa,cnpj,ip,data,hora) VALUES ('$loja_codigo_empresa','$l_categoria_cnpj','$ip','$dataAtual','$horaAtual')";
							$query_insert = mysql_query($insert);
								if($query_insert){
									if($lc%2==0){
		?>
		<tr class="l1" onMouseOver="javascript:this.style.backgroundColor='#FFFF33'" onMouseOut="javascript:this.style.backgroundColor='#FFFF66'">
			<td class="texto">
				<span class="subtitulo">
					<?=$empresa_nome;?>
				</span>
				<br />
				<span class="texto">
					<b><?=$loja_nome;?></b>
					<br />
					(<?=$loja_ddd;?>) <?=$loja_telefone;?>
					<br />
					<?=$loja_endereco;?>, <?=$loja_numero;?> - <?=$loja_complemento;?>, <?=$loja_cep;?>
					<br />
					<?=$loja_bairro;?>, <?=$loja_cidade;?> / <?=$loja_uf;?>
				</span>
			</td>
		</tr>
		<?
									}else{
		?>
		<tr class="l2" onMouseOver="javascript:this.style.backgroundColor='#FFFF99'" onMouseOut="javascript:this.style.backgroundColor='#FFFFCC'">
			<td class="texto">
				<span class="texto">
					<b><?=$loja_nome;?></b>
				</span>
			</td>
		</tr>
		<?
									}
								}
							}
					}
?>
	</table>
</div>
<?
				}else{
					$msg .= "Não há empresa cadastrada!";
				}
		}

if($msg){
	$m = base64_encode($msg);
		if($m){
			header("location: empresas.php?m=".$m);
		}
}
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

nossa.. sem condições de fazer desse jeito ai...

 

pesquise por JOIN

 

se tiver dificuldades, exporte o sql de criação das tabelas, e poste aqui

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite,

 

Não sei se estou postando no lugar correto, caso não, desculpas.

 

Estou com um problema parecido com o dele

 

Onde tenho 3 tabelas:

 

Podutos

Empresas

Servicos

 

essas tabelas ficam dados diferentes e possuem apenas alguns campos em comum como: Nome, palavrachave.

 

O sistema tem uma opção de busca que pede para escolher onde buscar se o cliente escolhe buscar em cada uma separadamente, funciona perfeitamente agora meu problema é quando ele pede para buscar no site todo.

 

Alguém poderia me ajudar como fazer isso? Buscar nas 3 tabelas e exibir em uma única página.

 

atualmente uso isso mais não funciona de maneira alguma pois deve tar totalmente errado e faltando uma tabela na busca.

 

 

<?PHP 
$_pagi_sql = "SELECT c.palavrachave, c.nome, e.palavrachave, e.nome
 FROM produtos c
 INNER JOIN empresas e
      ON e.palavrachave = c.palavrachave where c.palavrachave LIKE '%" . $valor . "%' AND e.palavrachave LIKE '%" . $valor . "%'";

$resul_des = mysql_query($_pagi_sql);

while ($row_descricao = mysql_fetch_array($resul_des)){
echo $row_descricao['nome'];
echo $row_descricao['descricao'];
}
?>

 

 

Desde ja

Muito obrigado.

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.