Ir para o conteúdo
danielcsgomes

Concelhos, distritos, localidades

Mensagens Recomendadas

danielcsgomes    0
danielcsgomes

Boa tarde a todos, gostaria saber se alguem conhece algum sitio aonde se possa retirar todos os concelhos, distritos, localidades de portugal de modo a ser introduzido logo na base de dados?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
hardcore    0
hardcore

Pessoal, alguém consegue dizer-me como consigo passar os dados desses ficheiros para uma tabela do MySQL?

Se usar a query:

Load Data Infile 'caminho do ficheiro' into table minha_tabela

Ele passa mas só se o ficheiro txt tiver com tabulações em vez de ";".

Tentei passar para o Excel (por vezes o excel não passa todos os dados não sei porquê) e e gravar um txt com tabulações. Quando passo, desta forma, a tabela de do MySQL fica com uma linha a mais no registo, como se tivesse feito um ALT+ENTER no campo.

Alguém sabe dizer-me como se faz para passar tal e qual como está nos ficheiros dos ctt?

O que eu já tinha feito, foi um programa em C# para manipular os dados do ficheiro e passar a informação que me interessa para outro ficheiro mas o que gostava na realidade era saber como é que se faz para passar tal e qual dos ficheiros disponibilizados pelos ctt.

obrigado.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Battousai    1
Battousai

Acho que só em php. Se for do tipo de ficheiro CSV, fazes do estilo:


$ficheiro = 'csv.csv';
$handle = fopen($ficheiro,'r');

while ( ($dados = fgetcsv( $handle, 2000, ';', '"') ) !== false ){

$dadosParaInserir [] = array( $dados[1], $dados[2], $dados[3]... );

}

....

inserir na bd

...

pesquisa sobre a funcao fgetcsv

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
hardcore    0
hardcore

obrigado Battousai

Descobri também esta maneira

LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name

FIELDS TERMINATED BY ','

LINES TERMINATED BY '\n';

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pedrotuga    31
pedrotuga

obrigado Battousai

Descobri também esta maneira

Coool!

Que motor de base de dados dá para fazer isso? Todos?

Não sabia desse pequeno truque.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
hardcore    0
hardcore

Ya, penso que dão todos... Eu normalmente uso o MS SQL mas desta vez tenho de usar o mysql.

Mas detectei um pequeno problema... o ficheiro todos_cp tem dados repetidos... há alguma forma de dar a volta à situação. Eu tentei acrescentar um campo chave com incrementação automática, mas se quero passar directamente do ficheiro para a tabela os campos têm de bater certos. têm de ser exactamente 16...

alguma ajuda?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Battousai    1
Battousai

http://dev.mysql.com/doc/refman/5.0/en/load-data.html

Tens aí a sintaxe:

LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
    [REPLACE | IGNORE]
    INTO TABLE tbl_name
    [CHARACTER SET charset_name]
    [FIELDS
        [TERMINATED BY 'string']
        [[OPTIONALLY] ENCLOSED BY 'char']
        [ESCAPED BY 'char']
    ]
    [LINES
        [sTARTING BY 'string']
        [TERMINATED BY 'string']
    ]
    [iGNORE number LINES]
    [(col_name_or_user_var,...)]
    [sET col_name = expr,...]

Tens a opção de adicionar um REPLACE.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
hardcore    0
hardcore

agradecido, funcionou!

foi só simplificar o código

LOAD DATA INFILE 'c:/todos_cp.txt'

replace

INTO TABLE todos

FIELDS TERMINATED BY ';'

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
M6    76
M6

Cuidado com o ficheiro dos CTT, recentemente sofreu uma alteração e as freguesias deixaram de constar no .zip.

Com "sorte" esta situação será temporária.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
cavalinho81    0
cavalinho81

eu tenho o ficheiro completo, separado por distritos, concelhos e freguesias... se alguém necessitar, basta pedir :)

Pode enviar-me esse ficheiro.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
radicalboy    0
radicalboy

Sei que não é o sitio indicado, mas aproveito já que tem a ver com isto...

Como faço um campo de opções vindas do mysql..

Por exemplo, de inicio tenho os distritos, ao seleccionar um, aparece só os concelhos associados a esse e assim como para as freguesias

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
yoda    139
yoda

Sei que não é o sitio indicado, mas aproveito já que tem a ver com isto...

Como faço um campo de opções vindas do mysql..

Por exemplo, de inicio tenho os distritos, ao seleccionar um, aparece só os concelhos associados a esse e assim como para as freguesias

Que linguagens estás a usar?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
nruivo    0
nruivo

boas a todos,

Para quem usa estes ficheiros oriundos dos ctt, venho fazer só um pequeno alerta.

Os Ctt disponibilizam periodicamente os ficheiros.

De tempos a tempos lançam uma nova versão, o que é optimo, pois permite-nos atraves de carregamentos periodicos ter a nossa BD actualizada.

O problema nisto é que não indicam as alterações que houve entre uma versão e outra.

Não havendo os devidos cuidados, pode-se começar a deixar 'lixo' na nossa BD. registos que os ctt deixam de usar, ou que alteraram e nós não temos possibilidades de saber quais.

Para quem esta a começar a usar estes dados agora, o melhor é começar ja a pensar, em criar rotinas de importação destes dados, fazendo as validações/substituições possiveis quanto aos dados já existentes na vossa BD.

um abraço,

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade