Old Snake
Power Member
Boas!
Estou a ter algumas dificuldades num trabalho que estou a fazer (para a escola), que tem haver com códigos postais
Basicamente tenho de ter tudo especificado numa base de dados (estou a usar MySQL para isso) e criar algo que me permita obter a morada através de um código postal e vice-versa.
Consegui obter a lista de todos os códigos postais no site do CTT (lista).
Para organizar os distritos, concelhos e freguesias não tive qualquer problema. Os dados da lista que referi acima vinham num bloco de notas da seguinte maneira:
distrito – ex: 01;Aveiro (01 corresponde ao código do distrito, sendo Aveiro o seu nome)
concelho – ex: 18;24;Vouzela (18 corresponde a distrito, 24 a conselho)
freguesia – ex: 09;11;10;Bendada (09 distrito, 11 concelho, 10 freguesia)
Consegui obter os dados facilmente usando estas linhas de código em php (o meu prof já tinha um exemplo feito muito parecido logo foi praticamente só copiar):
Só que agora para as moradas é que tenho um grande problema, já que umas me aparecem assim - 01;01;03;278;Pisão;;;;;;;;;;;3750;056;AGUADA DE CIMA – enquanto que outras assim - 01;01;04;289;Águeda;180101;Rua;do;;;Caldeireiro;;;;;3750;135;ÁGUEDA.
Já não consigo fazer isto através do explode ; , e sinceramente não consigo pensar num método que me permita resolver este problema (diga-se desde já que não sou grande coisa a programação, infelizmente…). Além disso não sei a que se referem os números 289 e 180101 (do 2º exemplo nas moradas) :S
Se me puderem dar umas ideias agradecia imenso!
Abraço
P.S. Estava indeciso em escolher entre “Programação” e “Web Development” para meter isto, não sei se optei pela opção mais correcta.
Estou a ter algumas dificuldades num trabalho que estou a fazer (para a escola), que tem haver com códigos postais
Basicamente tenho de ter tudo especificado numa base de dados (estou a usar MySQL para isso) e criar algo que me permita obter a morada através de um código postal e vice-versa.
Consegui obter a lista de todos os códigos postais no site do CTT (lista).
Para organizar os distritos, concelhos e freguesias não tive qualquer problema. Os dados da lista que referi acima vinham num bloco de notas da seguinte maneira:
distrito – ex: 01;Aveiro (01 corresponde ao código do distrito, sendo Aveiro o seu nome)
concelho – ex: 18;24;Vouzela (18 corresponde a distrito, 24 a conselho)
freguesia – ex: 09;11;10;Bendada (09 distrito, 11 concelho, 10 freguesia)
Consegui obter os dados facilmente usando estas linhas de código em php (o meu prof já tinha um exemplo feito muito parecido logo foi praticamente só copiar):
Este exemplo é referente ao concelho. As linhas de código para aceder à b.d. estão como “comentário” porque o PC estava com problemas a conectar. Acaba por não fazer grande diferença, já que os resultados me aparecem prontos a “copiar & colar” no MySQL, permitindo ainda corrigir alguns erros que apareçam.<?php
$file1=fopen("concelhos.txt","rb");
//$aa=mysql_connect('localhost','root','root');
//mysql_select_db('codigopostal');
$sql="insert into concelho(codigocon, nome, codigodis) values ";
while(!feof($file1)){
$linha=fgets($file1,4096);
$dados=explode(";",$linha);
$dist=$dados[0];
$conc=$dados[1];
$nome=$dados[2];
$sql.="(".$conc.",'".$nome."',".$dist."),";
}
echo "<br>".$sql;
?>
Só que agora para as moradas é que tenho um grande problema, já que umas me aparecem assim - 01;01;03;278;Pisão;;;;;;;;;;;3750;056;AGUADA DE CIMA – enquanto que outras assim - 01;01;04;289;Águeda;180101;Rua;do;;;Caldeireiro;;;;;3750;135;ÁGUEDA.
Já não consigo fazer isto através do explode ; , e sinceramente não consigo pensar num método que me permita resolver este problema (diga-se desde já que não sou grande coisa a programação, infelizmente…). Além disso não sei a que se referem os números 289 e 180101 (do 2º exemplo nas moradas) :S
Se me puderem dar umas ideias agradecia imenso!
Abraço
P.S. Estava indeciso em escolher entre “Programação” e “Web Development” para meter isto, não sei se optei pela opção mais correcta.