Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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 outroEntão... mas os dados estão na mesma tabela..
Esse exemplo que voce me passou só daria certo se estivem em tabelas diferentes
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.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
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