Ir para o conteúdo
panickz

Base de Dados Codigos Postais

Mensagens Recomendadas

panickz

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 ;)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
panickz

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

Editado por panickz

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

<?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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
panickz

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.

Partilhar esta mensagem


Ligação 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. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.