Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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:
As tabelas estão assim:
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!!! :(
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> $msg .= "Não há empresa cadastrada!";
}
}
if($msg){
$m = base64_encode($msg);
if($m){
header("location: empresas.php?m=".$m);
}
}
}
?>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
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.
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