<?php
/*
Enkelt script som fyller opp en tabell med norske postnr. og tilhørende poststeder. Siden dette er noe
man neppe vil gjøre så mange ganger i løpet av en databases liv, har jeg ikke giddet å lage noen skikkelig
klasse av dette - bare fyll inn de nødvendige verdiene i listen over variabler i begynnelsen av scriptet.
Kildefilen som inneholder postnr. og -sted må være en ren TAB-separert tekstfil, som har et postnr. og -sted
på hver linje. Postnr. og poststed må være de første verdiene på hver linje. En til enhver tid oppdatert slik
fil kan i skrivende stund hentes på http://epab.posten.no/Norsk/Nedlasting/_Files/tilbud5.txt
Tabellen du skal fylle opp bør ha kun to felter - postnr. som første felt og poststed som annet felt.

Dette scriptet kommer uten noen som helst form for bruksbegrensninger og garanti. Bruk det som du vil,
men på eget ansvar :-) Forhåpentligvis kan det spare deg litt tid.
Hvis du bruker det, hadde det vært hyggelig å få en liten melding om dette på blackwings99@hotmail.com
 - særlig hvis du forbedrer det - men du er ikke forpliktet til dette.

Thomas Winther

*/

$host ''//navnet på maskinen databasen din ligger på
$user ''//ditt brukernavn på mySQL-basen
$pass ''//ditt passord på mySQL-basen
$db ''//navnet på mySQL-basen
$tabell =''//navnet på tabellen du skal fylle med postnr. og -sted
$source '';            //kildefilen som inneholder postnr. og -sted
$pairs = array(                    //her legger vi etter hvert de ferdige postnumrene og -stedene
    
"postnr"    => array (),
    
"poststed"    => array ()
);


if (!(
$liste = @ file("$source"))) //hent inn postnr og poststed
die ("FEIL: Finner ikke kildefilen.");

echo 
'Bearbeider data...<br />';

foreach (
$liste as $linje)
{
    
$exploded explode("\t",$linje);         //del hver linje opp i sine enkeltbestanddeler
    
$exploded array_slice($exploded,0,2);    //fjern kommunenummer og -navn og evt. annet tjafs som kommer etter postnr. og poststed
    
foreach ($exploded as $singles)
    {
        if (
preg_match('^\d^',$singles))    //putt de enkelte bestanddeler på riktig sted
        
{
            
$pairs ['postnr'][] = $singles;
        }
        else 
        {
            
$pairs ['poststed'][] = $singles;
        }
    }
}

echo 
'Gjør klar til å mate databasen...<br />';

if (!(
$conn = @ mysql_connect($host,$user,$pass)))    //koble til database-host
die ("FEIL: Kan ikke koble til host.");

if (! @ 
mysql_select_db($db,$conn))
die (
"FEIL: Finner ikke database. $db er ikke en gyldig database på denne hosten.");

echo 
'Skriver til basen...<br />';

for (
$i=0;$i>=0;$i++)        //skriv til databasen
{
    
$pnr $pairs['postnr'][$i];
    if (!
$pnr) break;
    
$psted $pairs['poststed'][$i];
    
$query "INSERT INTO $tabell VALUES (" "\"" $pnr "\", " "\"" $psted "\")";
    
mysql_query($query,$conn);
}

echo 
"Ferdig! $i rader satt inn.";

?>