D'Emery 0 Denunciar post Postado Novembro 11, 2010 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
William Bruno 1501 Denunciar post Postado Novembro 11, 2010 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
D'Emery 0 Denunciar post Postado Novembro 11, 2010 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
William Bruno 1501 Denunciar post Postado Novembro 11, 2010 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
João C. Neto 0 Denunciar post Postado Dezembro 14, 2010 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