Jump to content
danicarla

Ajuda para essa consulta

Recommended Posts

Oi gente.. tenho uma tabela de endereços e uso php para fazer dois loops para exibir as cidades e depois os bairros daquela cidade,

fica algo + ou - assim:

$a = mysql_query('SELECT nome_cidade FROM tab GROUP BY nome_cidade');
while($b = mysql_fetch_array($b)){
	echo $b['nome_cidade'].'<br>';
	$c = mysql_query('SELECT nome_bairro FROM tab WHERE nome_cidade='$b[nome_cidade]' GROUP BY nome_bairro');
      while($d = mysql_fetch_array($c)){
		echo $d['nome_bairro'].'<br>';
	}
}

Alguém sabe se eu consigo fazer isso somente com uma consulta? pra não precisar incluir um loop dentro do outro

Share this post


Link to post
Share on other sites

Precisa usar JOIN.

 

Aí no banco, o bairro precisa ter id da cidade para encontra-lá.

 

Resumidamente, o JOIN consulta relacionamentos entre tabelas, dê uma olhada aqui.

 

Sua consulta ficaria +/- assim:

SELECT * FROM tb_cidade
INNER JOIN tb_bairro
ON tb_cidade.id = tb_bairro.id_cidade;

Tenta fazer e retorne aqui.

Share this post


Link to post
Share on other sites

Então... mas os dados estão na mesma tabela.. 

Esse exemplo que voce me passou só daria certo se estivem em tabelas diferentes

Share this post


Link to post
Share on other sites

Ah, desculpe, é mesmo. 

Agrupe por cidade e por bairro, não resolve?

Select nome_cidade, nome_bairro FROM tabela GROUP BY nome_cidade, nome_bairro ORDER BY nome_cidade

Assim terá todas as cidades e todos os bairros sem repetir as cidades.

Share this post


Link to post
Share on other sites

Sim esse é o jeito que eu faço atualmente, mas dai eu preciso ficar fazendo IF para exibir o nome da cidade somente no inicio, minha idéia era fazer isso atraves de consulta, mas aparentemente não é viavel

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By drx
      Olá feras!
       
      Estou recebendo este retorno da conexão: SQLSTATE[HY000] [1049] Base 'dbbase' inconnue
       
      O que é que pode ser?
       
      Tudo certinho. Fala que a dbbase não existe, mas existe.
      Alguém tem uma solução ?
       
      Desde já agradeço.
    • By fabioamorais
      Ola pessoal, sou novo aqui no fórum e também no mundo da programação. 

      Estou criando um sistema de cadastro de clientes em PHP 7 e mysql
      para meu serviço para fins de organização, tenho ja pronto o sistema de cadastro e edição do cliente, tenho login por usuário e senha.
      preciso colocar nesse sistema uma forma que registre a ação e o usuário que fez a ação quando houver uma alteração no cadastro.
      exemplo;
      O usuario (jose) alterou o status de analise para concluído .
      o usuario (pedro) alterou a localização de mesa para armario.
      e que fosse exibido como um tipo de histórico de eventos no próprio cadastro do cliente.
      e nesse campo se ainda tiver como add cometários.
      Usuario (jose): Precisa entrar em contato com o cliente francisco. 
      Usuario (pedro): cliente foi avisado e está sabendo.
       
      quem souber uma forma de fazer isso, ficaria muito grato.

    • By proflupin
      Estou com a seguinte dificuldade, possuo um <a> que busca uma id numa tabela do banco de dados, conforme abaixo:
       
      <a href="self_service.php?id=<?php echo $row_produto['id_categoria_chamado']?>" class="btn btn-primary"data-toggle="collapse" data-target="#subcategoria" aria-expanded="false" aria-controls="collapseExample">Visitar</a> A consulta é realizada, pois vejo que um novo link é mostrado no rodapé da página:

       
      Esta página self_service.php mostrada acima, é minha página principal, onde tudo é trabalhado. Se por exemplo eu mudar para outro arquivo php, teste.php por exemplo, uma nova página é aberta e consigo exibir os resultados normalmente.
       
      O problema é: quero abrir este ID na mesma página, dentro de um collapse. Exemplo:
       
      Cliquei em visitar na categoria Totvs...
       
       
      Um collapse abre-se logo abaixo:

       
      O que não consigo fazer é resgatar o ID passado pelo botão VISITAR em meu collapse, se eu tenter o $_GET['id'], não vai retornar nenhum valor, pois a URL não muda quando trabalhamos com collapse.
    • By DinhoPHP
      Olá!
      Alguém pode me dar uma luz sobre fazer um ORDER BY, hora ASC ou hora DESC? Por favor! Estou utilizando PHP e JS no projeto.
       
      $pegadados = $pdo->prepare("SELECT * FROM produtos WHERE categoria LIKE '%$dataSearch%' OR marca LIKE '%$dataSearch%' OR produto LIKE '%$dataSearch%' OR modelo LIKE '%$dataSearch%' OR descricao LIKE '%$dataSearch%' ORDER BY $filter $filter2");
    • By Murilo Corrêa
      Bom dia Senhores, 
       
      Estou com um dificuldade, onde precisava que minha consulta trouxesse apenas a menor data para cada produto. 
       
      Faço o cruzamento entre 3 tabelas. Segue 2 Selects que tentei, porém está trazendo todas as datas (termino_digitacao) de cada item.
       
      Tentativa 1: 
       
      select concat(prd.cod_produto, prd.digito) as Cod_Delage, prd.descricao as Descricao, p.termino_digitacao as Entrada, p.cod_pedido as Pedido from pedido p (NOLOCK) inner join pedido_item pedi (NOLOCK) on p.cod_pedido= pedi.cod_pedido inner join produto prd (NOLOCK) on pedi.cod_produto= prd.cod_produto where p.operacao=2 and p.termino_digitacao=(select Min(pe.termino_digitacao) FROM pedido pe WHERE pe.cod_pedido=p.cod_pedido GROUP BY cod_pedido) GROUP by prd.cod_produto,prd.digito, prd.descricao, p.termino_digitacao, p.cod_pedido ORDER BY Cod_Delage  
      Tentativa 2: 
       
      select concat(prd.cod_produto, prd.digito) as Cod_Delage, prd.descricao as Descricao, p.termino_digitacao as Entrada, p.cod_pedido as Pedido from (select cod_pedido, MIN(termino_digitacao) as entrada from pedido (NOLOCK) group by cod_pedido) pe inner join pedido p (NOLOCK) on pe.cod_pedido= p.cod_pedido and pe.cod_pedido=p.cod_pedido and pe.entrada= p.termino_digitacao inner join pedido_item pedi (NOLOCK) on p.cod_pedido= pedi.cod_pedido inner join produto prd (NOLOCK) on pedi.cod_produto= prd.cod_produto where p.operacao=2 GROUP by prd.cod_produto,prd.digito, prd.descricao, p.termino_digitacao, p.cod_pedido ORDER BY p.termino_digitacao asc
       
       
      OBS: Ambas estão trazendo as mesmas informações kkk. 
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.