Jump to content

Base de Dados Codigos Postais


panickz

Recommended Posts

Boas, antes de mais já tinha reparado que existem alguns tópicos com a questão semelhante a minha no entanto a minha é ligeiramente diferente.

Eu tenho uma BD onde já tenho listado todos os Distritos, Concelhos e Freguesias elas estão relacionada entre elas, no entanto não tem códigos postais das freguesias.. Existem vários ficheiro exportáveis com isto no entanto têm as ruas e outros códigos desnecessários Eu apenas queria o código postal da freguesia e não e os indicativos ruas e coordenadas. Por uma questão de optimização e mesmo de funcionamento os TXT's existentes que encontrei não me ajudam muito. Alguém tem alguma base de dados semelhante com estes dados já inseridos ou que saiba onde os encontrar? A única forma que teria era ver 1 a 1 das 4352 Freguesias existentes o CP e inserir manualmente (O que é um bocado chato) Podia usar a dos CTT's com as ruas mas quero evitar ter a BD com lixo.

Desde já agradeço 😉

Link to comment
Share on other sites

Nunca usei de que forma poderia faze-lo? O que estava a fazer era a exportar tudo para uma Tabela com as ruas todas e ia sacas com sql distinct os codigos postais e associalos aos que tavam so que queria algo que nao desse margem para erros visto que são muitas entradas e nao consigo de forma obvio verificar se os dados batem todos certos.

De qualquer forma como posso fazer o parser (Desconheço nunca tive a necessidade de fazer o que estou a fazer) ?

EDITADO:

E também não consigo correr um explode ao file é muito grande nem ao ciclo chega....

Fatal error: Maximum execution time of 30 seconds exceeded in _ on line 7

Edited by panickz
Link to comment
Share on other sites

<?php
$time_start = microtime(true);

$record = null;

if (($handle = fopen("todos_cp.txt", "r")) !== FALSE) {
   while (($data = fgetcsv($handle, 0, ";")) !== FALSE) {
       if ($record == null ||
           $record['distrito']      != $data[0] ||
           $record['concelho']      != $data[1] ||
           $record['freguesia']     != $data[2] ||
           $record['codigo_postal'] != $data[14])
       {
           $record['distrito']      = $data[0];
           $record['concelho']      = $data[1];
           $record['freguesia']     = $data[2];
           $record['codigo_postal'] = $data[14];

           /* fazer o que tens a fazer */
       }
   }
} else {
   echo "Erro a abrir o ficheiro\n<br />";
}

$time_end = microtime(true);
echo "elapsed time : ".($time_end - $time_start)." (segs)";
?>

output :

elapsed time : 4.0243990421295 (segs)

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

niceeeee! Brigadao isso ja me resolve tudo.

$data = fgetcsv($handle, 0, ";")
Esta função é a cereja, desconhecia. Fico-te a dever uma 😉

Entretanto também pensei numa solução que pode funcionar embora desse mais voltas. Seria importar tudo em CSV para através do phpmyadmin de seguida fazer select das pretendidas e exportar a query. E depois voltar a importar com os dados já filtrados.

Link to comment
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.