<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>David Steinsland &#187; MySQL</title>
	<atom:link href="http://blog.davidsteinsland.net/emner/webprogrammering/mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.davidsteinsland.net</link>
	<description>Personlig blogg om programmering og andre uinteressante emner</description>
	<lastBuildDate>Sun, 25 Jul 2010 16:54:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Komplett databasesett over Norges postnummer (med koordinater)</title>
		<link>http://blog.davidsteinsland.net/2010/03/komplett-databasesett-over-norges-postnummer-med-koordinater/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=komplett-databasesett-over-norges-postnummer-med-koordinater</link>
		<comments>http://blog.davidsteinsland.net/2010/03/komplett-databasesett-over-norges-postnummer-med-koordinater/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 21:49:51 +0000</pubDate>
		<dc:creator>David Steinsland</dc:creator>
				<category><![CDATA[Guider]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[postnummer]]></category>

		<guid isPermaLink="false">http://blog.davidsteinsland.net/?p=259</guid>
		<description><![CDATA[Her kommer det er oversikt over absolutt alle postnummer i Norge med tilhørende fylke, kommune og poststed. Hvert postnummer har også en lengde- og breddegrad tilknyttet seg. På denne måten kan du koble opp postnummeret til f.eks Google Maps. Det er i alt fire tabeller i databasesettet: Comments County Municipal Zip _codes _places Første tabell [...]]]></description>
			<content:encoded><![CDATA[<p>Her kommer det er oversikt over absolutt alle postnummer i Norge med tilhørende fylke, kommune og poststed. Hvert postnummer har også en lengde- og breddegrad tilknyttet seg. På denne måten kan du koble opp postnummeret til f.eks Google Maps.</p>
<p>Det er i alt fire tabeller i databasesettet:</p>
<ul>
<li> Comments</li>
<li>County</li>
<li>Municipal</li>
<li>Zip
<ul>
<li>_codes</li>
<li>_places</li>
</ul>
</li>
</ul>
<p>Første tabell inneholder bare seks rader, som forklarer om postnummeret er av typene:</p>
<ul>
<li> Firma med eige postnummer</li>
<li>Fleire bruksområde</li>
<li>Gateadresser</li>
<li>Gateadresser og postboksar</li>
<li>Postboksar</li>
<li>Serviceboksar</li>
</ul>
<p>Databasesettet er generert med hjelp av <a href="http://www.erikbolstad.no/geo/noreg/postnummer/">Postnummer-dugnaden</a> <a href="http://yr.no">Yr.no</a> arrangerte sommeren 2009.</p>
<p>Ved hjelp av lengde- og breddegradene kan du jo også regne deg frem til avstanden mellom to steder, eller finne nærmeste postkontor til en bruker.</p>
<p>For å få lett oversikt over alle postkoder, kjører du følgende spørring:</p>
<pre class="brush: sql;">
SELECT
z.zip, c.name as fylke, m.name as kommune, p.name as poststed, cc.comment, z.lat, z.lon
FROM `zip_codes` z
INNER JOIN zip_places p
ON p.place_id = z.place_id
INNER JOIN municipal m
ON m.id = p.municipal_id
INNER JOIN county c
ON c.county_id = m.county_id
INNER JOIN comments cc
ON cc.comment_id = z.comment_id
ORDER BY
z.zip ASC, fylke ASC, kommune ASC, poststed ASC</pre>
<p>Med enhver sak kan det forekomme feil, så om dere kommer over noe som skulle vise seg til å være en bug: si i fra.</p>
<p><strong>Liste over alle postnummer</strong>:<br />
<a href="http://trunk.davidsteinsland.net/zip_codes.htm">http://trunk.davidsteinsland.net/zip_codes.htm</a></p>
<h3>Oppdateringer</h3>
<ul>
<li>Ser ut til at Jan Mayen og Svalbard har klart å falle ut. Dette er pga. øyene ikke tilhører noe fylke. Skal ordnes.</li>
<li>Fikset nå. Poststeder på øyene er plassert i et eget dummy-fylke kalt &#8220;Svalbard og Jan Mayen&#8221;</li>
<li>Fylkene har nå fått korrekt fylkesnummer basert på ISO 3166-2:NO. Fikset opp i kommuner på Jan Mayen og Svalbard</li>
</ul>
<h3>Laste ned</h3>
<p><a href="http://norskwebforum.no/download/file.php?id=251">Norske postnummer.zip</a>, lisensiert under <a href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons</a>.</p>
<h2>Tips &amp; triks</h2>
<h3>Hvordan finne et originalpunkt basert på gitt bredde- og lengdegrad?</h3>
<p>Basert på sfærisk trigonometri kan vi &#8220;enkelt&#8221; regne oss frem til dette. Først av alt må vi gjøre punktene våres om til radianer (fra grader) for at funksjonen skal gjelde. Vi benytter oss også av jordradien i meter.</p>
<p>Distansen mellom punktene er gitt ved <em>s</em>:</p>
<img src='http://s.wordpress.com/latex.php?latex=s%20%3D%20%5Ccos%5E%7B-1%7D%5Cbig%28%20%5Csin%20%5Cphi%20%5Ccdot%20%5Csin%20%5Cphi_0%20%2B%20%5Ccos%20%5Cphi%20%5Ccdot%20%5Ccos%20%5Cphi_0%20%5Ccdot%20%5Ccos%20%5CDelta%20%5Clambda%20%5Cbig%29%20%5Ccdot%20R_%5Coplus&#038;bg=ffffff&#038;fg=000000&#038;s=1' alt='s = \cos^{-1}\big( \sin \phi \cdot \sin \phi_0 + \cos \phi \cdot \cos \phi_0 \cdot \cos \Delta \lambda \big) \cdot R_\oplus' title='s = \cos^{-1}\big( \sin \phi \cdot \sin \phi_0 + \cos \phi \cdot \cos \phi_0 \cdot \cos \Delta \lambda \big) \cdot R_\oplus' class='latex' />
<p>Breddegradene (<img src='http://s.wordpress.com/latex.php?latex=%5Cphi&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\phi' title='\phi' class='latex' />) og lengdegradene (<img src='http://s.wordpress.com/latex.php?latex=%5Clambda&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\lambda' title='\lambda' class='latex' />) må først gjøres om til radianer. Dette gjør du med følgende formel:</p>
<img src='http://s.wordpress.com/latex.php?latex=%7Brad%7D%20%3D%20%5Cfrac%7B180%5E%5Ccirc%7D%7B%5Cpi%7D%20%5Ccdot%20%7Bdeg%7D%20&#038;bg=ffffff&#038;fg=000000&#038;s=1' alt='{rad} = \frac{180^\circ}{\pi} \cdot {deg} ' title='{rad} = \frac{180^\circ}{\pi} \cdot {deg} ' class='latex' />
<p>Dette er igrunn irrelevant, for dette har jeg allerede tatt høyde for i kodene.</p>
<p>For å løse det i MySQL, kan man gjøre det slik:</p>
<pre class="brush: sql;"> SET @MY_LAT = 59.7022480, @MY_LON = 5.3764340;

SELECT z.zip, p.name, z.lat, z.lon, acos(SIN( RADIANS(@MY_LAT)) * SIN( RADIANS(z.lat))
+(cos(RADIANS(@MY_LAT)) * COS( RADIANS(z.lat)) * COS(RADIANS(z.lon) - RADIANS(@MY_LON))
)) * 6378137 AS distance
FROM zip_codes z
INNER JOIN zip_places p
ON z.place_id = p.place_id
HAVING distance &lt;= 2000
ORDER BY distance ASC</pre>
<p>Her har jeg satt variablene utenfor selve spørringen slik at det blir litt lettere å få det med seg.</p>
<p>I PHP kan man gjøre det slik:</p>
<pre class="brush: php;">$lat_1 = deg2rad (59.7022480);
$lat_2 = deg2rad (59.7022480);

$lon_1 = deg2rad (5.3764340);
$lon_2 = deg2rad (5.3764340);

$R = 6378137; // meters

$distance = acos ( sin($lat_1) * sin($lat_2) + cos ($lat_1) * cos($lat_2) * cos ($lon_2 - $lon_1)) * $R;
echo 'Distance: ' . (int)$distance/1000 . ' km'; </pre>
<p><strong>Hva betyr dette? Hva kan man nytte det til?</strong><br />
Dersom du bruker en pakkeløsning hvor du kan dra frem koordinatene til en bruker basert på hans IP, kan du finne ut en circa-plassering på hvor han er i Norge. Formelen har en feilkilde på rundt 1 meter.</p>
<h3>Bruke jQuerys Ajax-funksjonalitet til å hente ut data om postnummer</h3>
<p>1. Opprett en fil kalt &#8220;get_postal.php&#8221; med følgende kode:<br />
<a href="http://norskwebforum.no/pastebin/11243">http://norskwebforum.no/pastebin/11243</a></p>
<p>2. Opprett så index.html med følgende kode:<br />
<a href="http://norskwebforum.no/pastebin/11244">http://norskwebforum.no/pastebin/11244</a></p>
<p>3. Opprett en mappen &#8220;cache&#8221;</p>
<p>Test ved å skrive inn et postnummer (fire siffer langt) eller et poststed. Informasjon om postnummeret/-stedet vil etterhvert poppe opp i avsnittet under skjemaet.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.davidsteinsland.net/2010/03/komplett-databasesett-over-norges-postnummer-med-koordinater/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Liten oppdatering til Fileshed</title>
		<link>http://blog.davidsteinsland.net/2009/08/liten-oppdatering-til-fileshed/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=liten-oppdatering-til-fileshed</link>
		<comments>http://blog.davidsteinsland.net/2009/08/liten-oppdatering-til-fileshed/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 16:29:41 +0000</pubDate>
		<dc:creator>David Steinsland</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmering]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[fileshed]]></category>
		<category><![CDATA[oppdatering]]></category>

		<guid isPermaLink="false">http://blog.davidsteinsland.net/?p=96</guid>
		<description><![CDATA[I dag fikk jeg ideen å oppdatere filopplastningssystemet mitt litt. Tanken var følgende: la brukere legge passord på filene sine. Fra før kan brukerne velge mellom &#8220;offentlig&#8221; eller &#8220;privat&#8221; status på filene. Dersom filen er privat er det kun han som kan laste ned den, er den offentlig kan alle. Problemet var at det ikke [...]]]></description>
			<content:encoded><![CDATA[<p>I dag fikk jeg ideen å oppdatere <a href="http://fileshed.davidsteinsland.net/">filopplastningssystemet</a> mitt litt. Tanken var følgende: la brukere legge passord på filene sine. Fra før kan brukerne velge mellom &#8220;offentlig&#8221; eller &#8220;privat&#8221; status på filene. Dersom filen er privat er det kun han som kan laste ned den, er den offentlig kan alle. Problemet var at det ikke fantes noe mellomledd: det kom i dag.</p>
<p>Nå kan brukere lett legge passord på filen sin (også et hint, om nødvendig), og passe på at uvedkommende ikke laster ned filen (selv om den er markert offentlig). Når en bruker klikker på filen for å laste ned den, kommer det opp en side som spør etter passord.</p>
<p>Dersom dere har flere tips til hva som kan være nyttig, er det bare å si i fra. Jeg personlig har tenkt litt over en E-posttjeneste, hvor brukeren får i valg å sende en E-post med markert fil som vedlegg. Hadde dette vært noe?</p>
<p><a href="http://blog.davidsteinsland.net/wp-content/uploads/2009/08/gH2rd.png"><img class="aligncenter size-full wp-image-97" title="Fileshed-oppdatering" src="http://blog.davidsteinsland.net/wp-content/uploads/2009/08/gH2rd.png" alt="Fileshed-oppdatering" width="656" height="343" /></a>Filer med nøkkel etter filnavnet er passordbeskyttede filer. Dersom de har rød bakgrunn er de markert privat. For å bytte status er det bare til å klikke på det røde utropsikonet / grønne v-ikonet. For masseendringer finnes det avkryssningsbokser.</p>
<p>Edit 13/08-09: Nå er det også blitt lagt til en passord-glemmer.<br />
Edit 14/08-09: Har laget en logg for nedlastninger, slik brukeren kan følge med på hvem som laster ned fra han (hvilken fil, og dato).<br />
Edit 16/08-09: Nå er også E-postvideresenderen på plass, som gjør du kan sende filer via E-post.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.davidsteinsland.net/2009/08/liten-oppdatering-til-fileshed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nytt utseende til Fileshed &#8212; trenger feedback</title>
		<link>http://blog.davidsteinsland.net/2009/06/nytt-utseende-pa-fileshed-trenger-feedback/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=nytt-utseende-pa-fileshed-trenger-feedback</link>
		<comments>http://blog.davidsteinsland.net/2009/06/nytt-utseende-pa-fileshed-trenger-feedback/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 03:21:55 +0000</pubDate>
		<dc:creator>David Steinsland</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmering]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[fileshed]]></category>
		<category><![CDATA[layout]]></category>

		<guid isPermaLink="false">http://blog.davidsteinsland.net/?p=73</guid>
		<description><![CDATA[Fileshed, filopplastningssiden jeg har laget, fikk en etterlengtet ansiktsløftning i disse nattetider, hvor jeg skiftet ut det dystre og kjedelige designet med noe nytt. For å fortelle litt om tjenesten, er det en side hvor du kan laste opp filer slik du kan for eksempel sende dem mellom multiple PC-er. Du kan også organisere filene [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://fileshed.davidsteinsland.net/">Fileshed</a>, filopplastningssiden jeg har laget, fikk en etterlengtet ansiktsløftning i disse nattetider, hvor jeg skiftet ut det dystre og kjedelige designet med noe nytt.</p>
<p>For å fortelle litt om tjenesten, er det en side hvor du kan laste opp filer slik du kan for eksempel sende dem mellom multiple PC-er. Du kan også organisere filene i mapper, gjøre dem offentlige (andre kan se dem, og laste de ned) eller private. Det er også mulighet for å laste ned mange filer på én gang (vil bli arkivert i et Zip-arkiv).</p>
<p>Tjenesten ligger også ute for salg, om det er noen som har lyst å bruke det kommersielt/privat.</p>
<p style="text-align: left;">Her følger to før-bilder; hvordan siden såg ut for ti minutt siden:<a href="http://blog.davidsteinsland.net/wp-content/uploads/2009/06/Magical-Snap-2009.06.28-04.00-001.png"><img class="aligncenter size-medium wp-image-74" title="Fileshed, fremsiden" src="http://blog.davidsteinsland.net/wp-content/uploads/2009/06/Magical-Snap-2009.06.28-04.00-001-300x157.png" alt="Fileshed, fremsiden" width="500" height="263" /></a><a href="http://blog.davidsteinsland.net/wp-content/uploads/2009/06/Magical-Snap-2009.06.28-04.01-002.png"><img class="aligncenter size-medium wp-image-75" title="Fileshed, oversikt over filer" src="http://blog.davidsteinsland.net/wp-content/uploads/2009/06/Magical-Snap-2009.06.28-04.01-002-300x159.png" alt="Fileshed, oversikt over filer" width="500" height="263" /></a></p>
<p style="text-align: left;">Her er den nye siden, fra samme sider som bildene over:</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-77" title="Fileshed (ny), fremsiden" src="http://blog.davidsteinsland.net/wp-content/uploads/2009/06/u5naz.png" alt="Fileshed (ny), fremsiden" width="500" height="263" /><img class="aligncenter size-full wp-image-80" title="Fileshed (ny), oversikt over filer" src="http://blog.davidsteinsland.net/wp-content/uploads/2009/06/bfg15.png" alt="Fileshed (ny), oversikt over filer" width="500" height="266" />Ble det bedre, eller hva synes <strong>du</strong>? Skjekk selv på: <a href="http://fileshed.davidsteinsland.net/">http://fileshed.davidsteinsland.net/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.davidsteinsland.net/2009/06/nytt-utseende-pa-fileshed-trenger-feedback/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
