Ir para conteúdo

POWERED BY:

Arquivado

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

Tiago Pontes

Preencher Select a partir de outro

Recommended Posts

Olá, estou fazendo um site de uma empresa de tv por assinatura. E existe uma parte do site que irá mostrar as áreas de coberturas que ela disponibiliza. Vou ter um select box com os estados, dependendo qual estado o usuário selecionar, o próximo select box será preenchido com as respectivas cidades desse estado (via banco).

 

Só explicando a situação, mais vamos logo direto ao ponto o/

 

 

Tenho um "arquivo.sql" onde nele vou ter duas tabelas, com todos os estados e cidades. As áreas de coberturas que a empresa disponibiliza vai ser em todos os estados, mais não em todas as cidades, e que vou ter uma lista com todas as cidades de cobertura.

 

O que devo fazer para ao mesmo tempo eu inclua (se não tiver a cidade no db) e ao mesmo tempo eu remova as cidade que não irá ter?

 

Tentei usar REPLACE, mais acho que ele não resolve meu problema. Ou sou eu que não estou sabendo usar?

 

Não estava querendo fazer isso na mão, são muitas cidades hehe

 

 

Valeu pela ajuda :joia:

Compartilhar este post


Link para o post
Compartilhar em outros sites

boas Tiago.

 

vou ver se entendi:

 

voce tem 2 tabelas (uma com cidades e outra com estados, penso eu de que...)

 

e voce quer incluir as cidades indicadas pela sua empresa, pelo que os estados vêm por arrasto, certo?

 

então vamos organizar:

 

tabela 1 = cidades (deverá ter no minimo 2 campos, 1 com a cidade e outro que faça a ligação para a tabela estados)

montando: create table cidades_br (cidade varchar(30) not null, estado varchar(30) not null)

 

tabela 2 = estados (pode conter só mesmo o campo estados)

montando: create table estados_br (estados varchar(30) not null)

 

tabela 3 = cidades indicadas pela sua empresa (pode conter só mesmo o campo cidades)

montando: create table cidades_ep (cidades varchar(30) not null)

 

tabela 4 = tabela com as cidades e estados definitivas

montando: create table cidades_estados (cidades varchar(30) not null, estados varchar(30) not null, primary cidades, estados)

 

atendendo que a tabela 4 é a que tem a informação que você pretende, monta um insert desta maneira:

 

insert ignore into cidades_estados (cidades, estados)
select cidades_br.cidades, estados_br.estados
from cidades_ep inner join cidades_br on cidades_ep.cidades = cidades_br.cidades and cidades_br inner join estados_br on cidades_br.estado = estados_br.estado

 

resumindo, as tabelas cidades e estados têm que ter um campo que as ligue, doutra maneira é impossível ligar o que quer que seja, a tabela 4 (cidades_estados) convem ter 2 chaves primarias (cidades e estados) para que deste modo não sejam inseridos duplicados, por fim, no insert adicionei o "ignore" para que deste modo se ao fazer o insert houver dados repetidos o script não pára, passa por cima e continua a inserir os dados que não estão na tabela.

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.