Jump to content
danielcsgomes

Concelhos, distritos, localidades

Recommended Posts

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?


Full Stack Web Developer @ Sedimap PT

Co-founder & Co-organizer @ phplx

Zend Certified Engineer PHP 5.3

Certified Scrum Master

Share this post


Link to post
Share on other sites
marinheiro

http://www.ctt.pt/contents/Downloads/todos_cp.zip

tem um ficheiro com todos os distritos (DD;Nome), um ficheiro com todos os concelhos (DD;CC;Nome) e um ficheiro com todas as freguesias (DD;CC;FF;Nome)...


há 10 tipos de pessoas: as que sabem binário e as que não sabem... todas as nossas vidas não passam de release candidates... com o aperfeiçoamento, um dia chegaremos à versão final..

Share this post


Link to post
Share on other sites
danielcsgomes

Era mesmo isso que estava a procura agora so resta colocar na base de dados ;) tks!


Full Stack Web Developer @ Sedimap PT

Co-founder & Co-organizer @ phplx

Zend Certified Engineer PHP 5.3

Certified Scrum Master

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
hardcore

obrigado Battousai

Descobri também esta maneira

LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name

FIELDS TERMINATED BY ','

LINES TERMINATED BY '\n';

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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?

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
hardcore

agradecido, funcionou!

foi só simplificar o código

LOAD DATA INFILE 'c:/todos_cp.txt'

replace

INTO TABLE todos

FIELDS TERMINATED BY ';'

Share this post


Link to post
Share on other sites
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.


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites
marinheiro

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


há 10 tipos de pessoas: as que sabem binário e as que não sabem... todas as nossas vidas não passam de release candidates... com o aperfeiçoamento, um dia chegaremos à versão final..

Share this post


Link to post
Share on other sites
cavalinho81

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

Pode enviar-me esse ficheiro.

Share this post


Link to post
Share on other sites
fnds

Neste momento o zip tem:

- todos_cp.txt

- leiame.txt

- freguesias.txt

- distritos.txt

- concelhos.txt

falta alguma coisa?

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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?

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

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.