/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
<Select> skal bruges som værdier i et regn~
Fra : Jean Jensen


Dato : 28-01-08 19:07

Hejsa.

Jeg skal hjælpe en god ven med et lille regnestykke på hans
hjemmeside, som tilbyder persontransport:

Regnestykket skal fungere på den måde, at en mulig kunde skal
vælge (i <select>) postnummeret hvor turen skal starte og slutte
- altså 2 postnumre. Hvis kunden skal via et tredje, skal dette
også vælges. Men det tror jeg godt jeg kan gennemskue, hvis bare
der er en der kan hjælpe med turen fra A til B...

Min ven har garage i Næstved, så udgangspunktet er altså 4700.
Lad os så antage at den mulige kunde skal fra 4840 til 2600 -
hvordan får jeg så <select>'erne til at regne en pris ud? Jeg har
en idé om, at hvert postnummer skal have en værdi af en eller
anden art:

4700 - 4840 = 40 (minutter)
4840 - 2600 = 100 (minutter)
Tid i alt = 140 (minutter)
Oprunding til nærmeste halve time
150 (minutter) X timepris = Den oplyste pris til kunden, som er
det eneste han ser - ud over

Hvordan fortæller jeg den ene <select>, at der er så og så mange
minutter (værdi) til den anden <select>? Det er ikke fordi det
SKAL foregå i <select>, jeg forestiller mig blot, at det er
nemmest...

Eller skal jeg spørge på en helt anden måde:

Hvordan beregner jeg tiden fra A til B og eventuelt via C (A, B
og C SKAL være postnumre)?

Med venlige hilsner fra
Kapunen

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Philip Nunnegaard (28-01-2008)
Kommentar
Fra : Philip Nunnegaard


Dato : 28-01-08 19:20

"Jean Jensen" <fam.jensen_BDETTEBURDEFJERNES_@yahoo.dk> skrev i meddelelsen
news:479e19a6$0$90263$14726298@news.sunsite.dk...
> Hejsa.

> Lad os så antage at den mulige kunde skal fra 4840 til 2600 -
> hvordan får jeg så <select>'erne til at regne en pris ud? Jeg har
> en idé om, at hvert postnummer skal have en værdi af en eller
> anden art:

Som jeg ser det, ryger vi ud i en tabel i databasen med omkring en million
rækker (1000 postnumre hver med afstand til de 999 andre postnumre)
Men muligvis kan du slippe med 10.000-100.000 rækker, hvis du kun opererer
på Sjælland.

Altså:

id | postnr1 | postnr2 | afstand
-------------------------------
1 | 1000 | 1500 | 2
2 | 1000 | 1800 | 4
3 | 1000 | 2000 | 5
4 | 1000 | 2100 | 5

....osv. ...

Hvis landkortet kun var 1-dimentionelt, kunne du nok nøjes med én værdi pr.
postnummer, men da landkortet er 2-dimentionelt, er sagen en noget anden.


Bertel Lund Hansen (28-01-2008)
Kommentar
Fra : Bertel Lund Hansen


Dato : 28-01-08 19:28

Philip Nunnegaard skrev:

> Som jeg ser det, ryger vi ud i en tabel i databasen med omkring en million
> rækker

Man kunne i stedet tildele hvert postnummer et sæt koordinater.
Så kunne afstanden mellem to numre beregnes ved hjælp af kære,
gamle Pythagoras.

Men Jean mangler også forbindelsen mellem HTML og
PHP-beregninger.

Hvis man har

   <form action='beregn.php' method='post'>
   <select name='start'>
   osv ...

Så kan man i beregn.php få adgang til værdien med variablen

   $_POST['start']

og tilsvarende.

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Jean Jensen (28-01-2008)
Kommentar
Fra : Jean Jensen


Dato : 28-01-08 19:33

Bertel Lund Hansen wrote in dk.edb.internet.webdesign.serverside.php:
>
> Man kunne i stedet tildele hvert postnummer et sæt koordinater.
> Så kunne afstanden mellem to numre beregnes ved hjælp af kære,
> gamle Pythagoras.
>
> Men Jean mangler også forbindelsen mellem HTML og
> PHP-beregninger.
>
> Hvis man har
>
>    <form action='beregn.php' method='post'>
>    <select name='start'>
>    osv ...
>
> Så kan man i beregn.php få adgang til værdien med variablen
>
>    $_POST['start']
>
> og tilsvarende.
>
Hej Bertel.

Jeg er på ingen måde ude på, at du skal lave det for mig, men hvad php-kodning
fra bunden angår, så er jeg en kende fattesvag

Kan du assistere mig lidt?

\ Kapunen

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Bertel Lund Hansen (28-01-2008)
Kommentar
Fra : Bertel Lund Hansen


Dato : 28-01-08 19:40

Jean Jensen skrev:

> Jeg er på ingen måde ude på, at du skal lave det for mig, men hvad php-kodning
> fra bunden angår, så er jeg en kende fattesvag

Jamen, så er der ikke andet for end at få en til at lave det for
dig.

At hjælpe dig frem til selv at kunne, er et langt større projekt
end at lave det.

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Philip Nunnegaard (28-01-2008)
Kommentar
Fra : Philip Nunnegaard


Dato : 28-01-08 19:56

"Jean Jensen" <fam.jensen_DETTEBURDEFJERNES_@yahoo.dk> skrev

> Jeg er på ingen måde ude på, at du skal lave det for mig, men hvad
> php-kodning
> fra bunden angår, så er jeg en kende fattesvag
>
> Kan du assistere mig lidt?

Hvis vi arbejder videre med Bertels koordinatsystem, får vi måske noget a la
dette:

Tabel:
id | postnummer | xakse | yakse
1 | 1000 | 500 | 300
2 | 2000 | 496 | 301

PHP-kode:

<?php
$postnr1 = $_POST["postnr1"];
$postnr2 = $_POST["postnr2"];

$sql = "select xakse,yakse from postnumre where postnummer=$postnr1";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)) {
$x1 = $row["xakse"];
$y1 = $row["yakse"];
}

--- Samme SQL-kald for postnr2 - her bruger du så $x2 og $y2 ---

$afstand_x = $x2-$x1;
if($afstand_x < 0) { $afstand_x = -$afstand_x; } // Retter negative tal, så
de bliver positive

$afstand_y = $y2 - $y1;
if($afstand_y < 0) { $afstand_y = -$afstand_y; }
?>

I ovennævnte eksempel med afstanden mellem Frederiksberg og København K er
afstandene hhv. 4 og 1 km. (fiktive tal)
Med pythagoras får vi så:

<?php
$afstand = sqrt($afstand_x^2 + $afstand_y^2);
?>






Jean Jensen (28-01-2008)
Kommentar
Fra : Jean Jensen


Dato : 28-01-08 19:29

Philip Nunnegaard wrote in dk.edb.internet.webdesign.serverside.php:
>
> Som jeg ser det, ryger vi ud i en tabel i databasen med omkring en million
> rækker (1000 postnumre hver med afstand til de 999 andre postnumre)
> Men muligvis kan du slippe med 10.000-100.000 rækker, hvis du kun opererer
> på Sjælland.
>
> Altså:
>
> id postnr1 postnr2 afstand
> -------------------------------
> 1 1000 1500 2
> 2 1000 1800 4
> 3 1000 2000 5
> 4 1000 2100 5
>
> ....osv. ...
>
> Hvis landkortet kun var 1-dimentionelt, kunne du nok nøjes med én værdi pr.
> postnummer, men da landkortet er 2-dimentionelt, er sagen en noget anden.
>

Hej Philip.

Det kan jeg godt se, det du'r jo simpelthen ikke - er der nogen der kender en
anden løsningsmodel?

\ Kapunen

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Bertel Lund Hansen (28-01-2008)
Kommentar
Fra : Bertel Lund Hansen


Dato : 28-01-08 19:37

Jean Jensen skrev:

> Det kan jeg godt se, det du'r jo simpelthen ikke - er der nogen der kender en
> anden løsningsmodel?

Ja, en koordinatmetode:

Tilfældige tal:

Husum: (20,45)
Horsens(11,923)

Afstanden er da sqrt((20-11)^2 + (45-923)^2)

Koordinaterne kan være lodret og vandret kilometerafstand fra et
valgt fikspunkt.

Man kan også bruge gradkoordinater fra et kort. Så skal man bare
regne det om til kilometer i forhold til hvor vi er på kloden.

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Leonard (28-01-2008)
Kommentar
Fra : Leonard


Dato : 28-01-08 19:54

On Mon, 28 Jan 2008 19:36:49 +0100, Bertel Lund Hansen wrote:

> Ja, en koordinatmetode:
>
> Tilfældige tal:
>
> Husum: (20,45)
> Horsens(11,923)
>
> Afstanden er da sqrt((20-11)^2 + (45-923)^2)

Det bliver så til den direkte afstand, og giver et helt forkert
slutresultat på en tur fra Slagelse til Grenå.
Eller for at blive på Sjælland, en tur, der går rundt om Roskilde Fjord.
Den kan bruges, men så skal der lægges nogle tvungne viapunkter ind.

--
Leonard

Bertel Lund Hansen (28-01-2008)
Kommentar
Fra : Bertel Lund Hansen


Dato : 28-01-08 21:48

Leonard skrev:

> Det bliver så til den direkte afstand, og giver et helt forkert
> slutresultat på en tur fra Slagelse til Grenå.

Vi har ikke fået oplyst hvad der er brug for, men det er da
rigtigt at tallet ikke angiver vejlængden, men kun fugleflugt.

Det andet overstiger hvad jeg vil prøve at bikse sammen til et
usenetindlæg. Det ville jo være et årsprojekt.

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Leonard (28-01-2008)
Kommentar
Fra : Leonard


Dato : 28-01-08 22:31

On Mon, 28 Jan 2008 21:47:44 +0100, Bertel Lund Hansen wrote:

> Vi har ikke fået oplyst hvad der er brug for, men det er da
> rigtigt at tallet ikke angiver vejlængden, men kun fugleflugt.

Det er noget med transport fra et postnr-område til et andet og en pris
regnet udfra tiden, så fugleflugt duer nok ikke alene.

--
Leonard

Leonard (28-01-2008)
Kommentar
Fra : Leonard


Dato : 28-01-08 19:41

On 28 Jan 2008 18:06:30 GMT, Jean Jensen wrote:

> Hvordan beregner jeg tiden fra A til B og eventuelt via C (A, B
> og C SKAL være postnumre)?

Da du ikke kan gå ud fra at der er lige langt imellem 2 vilkårlige
postnumre og heller ikke på nogen måde kan regne med at postnumrenes
indbyrdes forskel har sammenhæng med afstanden må du vel lave en tabel,
hvor du har alle kombinationer af postnumre med deres indbyrdes afstand:

4700 - 4750: 20 min
4700 - 4800: 10 min
4800 - 4750: 30 min
osv. osv. det bliver langt og besværligt at lave.

Ellers må du finde ud af noget med at lave en ruteplanner, så du kan få
oplyst afstanden mellem 2 adresser og omregne den til en pris, det vil
også være mere præcist og fair, da et postnummer kan strække sig over et
stort areal.
Hvor og hvordan du gør det ved jeg ikke, har aldrig haft brug for det.

--
Leonard

Jean Jensen (28-01-2008)
Kommentar
Fra : Jean Jensen


Dato : 28-01-08 19:55

Hej alle.

Jeg kan godt se hvor det her bærer henad...

Så lige et afsluttende spørgsmål: Hvordan har de gjort på
bilbasen.dk? Her indtaster jeg et postnummer og resultatet er en
afstand i km - den kunne vel lige så godt være i minutter...

\ Kapunen

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Leonard (28-01-2008)
Kommentar
Fra : Leonard


Dato : 28-01-08 20:05

On 28 Jan 2008 18:54:55 GMT, Jean Jensen wrote:

> Så lige et afsluttende spørgsmål: Hvordan har de gjort på
> bilbasen.dk? Her indtaster jeg et postnummer og resultatet er en
> afstand i km - den kunne vel lige så godt være i minutter...

Aner ikke hvordan de har gjort det, men ja, tiden fås jo bare ved at
gange afstand med hastighed.

--
Leonard

Philip Nunnegaard (28-01-2008)
Kommentar
Fra : Philip Nunnegaard


Dato : 28-01-08 21:01

"Leonard" <piper28a@gmail.invalid> skrev i meddelelsen
news:1219ldxeip54a.iwml70vqd9lj$.dlg@40tude.net...

> Aner ikke hvordan de har gjort det, men ja, tiden fås jo bare ved at
> gange afstand med hastighed.

I princippet - ja!
Men man holder nok ikke samme gennemsnitshastighed, om man kører fra
Rådhuspladsen til Svanemøllen Station i København eller fra Odense til
Middelfart via motorvejen.


Martin (30-01-2008)
Kommentar
Fra : Martin


Dato : 30-01-08 12:08

Jean Jensen wrote:
> Hej alle.
>
> Jeg kan godt se hvor det her bærer henad...
>
> Så lige et afsluttende spørgsmål: Hvordan har de gjort på
> bilbasen.dk? Her indtaster jeg et postnummer og resultatet er en
> afstand i km - den kunne vel lige så godt være i minutter...

De tjener sikkert så mange penge at de bruger kraks webservice, som kan
præcis dette... den koster bare klejner :)

Peter Brodersen (30-01-2008)
Kommentar
Fra : Peter Brodersen


Dato : 30-01-08 21:12

On Wed, 30 Jan 2008 12:08:12 +0100, Martin <martin@aarhof.eu.invalid>
wrote:

>De tjener sikkert så mange penge at de bruger kraks webservice, som kan
>præcis dette... den koster bare klejner :)

... eller Google Maps API, som er gratis

--
- Peter Brodersen
Kendt fra Internet

Peter Brodersen (28-01-2008)
Kommentar
Fra : Peter Brodersen


Dato : 28-01-08 23:59

On 28 Jan 2008 18:06:30 GMT, Jean Jensen
<fam.jensen_BDETTEBURDEFJERNES_@yahoo.dk> wrote:

>Jeg skal hjælpe en god ven med et lille regnestykke på hans
>hjemmeside, som tilbyder persontransport:

Helt overordnet: Det vil være uoverkommeligt for dig at skulle lave et
rute-beregnings-system fra bunden af.

Der er en gigantisk bunke faktorer i forhold til afstandsberegning og
tilsvarende et gigantisk antal kombinationer.

Jeg vil foreslå dig at bruge en rute-beregner til hjemmesiden.
Google Maps tilbyder, at man kan lave ruteopslag på sin egen
hjemmeside vha. deres API:
http://code.google.com/apis/maps/index.html

Man kan få afstanden og tiden strukturelt tilbage vha.
javascript-kald. Det kræver dog lidt indledende energi at sætte sig
ind i Google Maps API, men du kan få meget mere brugbare opslag ud af
det.

Der er naturligvis et par enkelte undtagelser, du selv må håndtere, fx
om du vil tillade transport mellem landsdele som fx over
Storebæltsbroen eller til Bornholm. Derudover har et postnummer
tendens til at blive markeret midt i en by, hvilket nogle gange giver
en for optimistisk tid og andre gange en for pessimistisk tid. Men du
kan selvfølgelig blot lade kunden indtaste de præcise adresser.

Du kan så, når vennen tjekker ordren, for en sikkerheds skyld lave
samme opslag for at sikre, at kunden ikke har fiflet med tallene.

--
- Peter Brodersen
Kendt fra Internet

Peter Brodersen (29-01-2008)
Kommentar
Fra : Peter Brodersen


Dato : 29-01-08 00:31

On Mon, 28 Jan 2008 23:59:23 +0100, Peter Brodersen
<usenet2007@ter.dk> wrote:

>Jeg vil foreslå dig at bruge en rute-beregner til hjemmesiden.
>Google Maps tilbyder, at man kan lave ruteopslag på sin egen
>hjemmeside vha. deres API:
>http://code.google.com/apis/maps/index.html

Jeg har banket et hurtigt javascript-eksempel sammen her på at beregne
ruteafstande ud fra Google Maps API:
http://map.ter.dk/distance.php
Der er ingen PHP involveret.

Husk at rette Google Maps API-nøglen til, hvis du vil bruge koden på
din egen side.

--
- Peter Brodersen
Kendt fra Internet

Martin (29-01-2008)
Kommentar
Fra : Martin


Dato : 29-01-08 23:05

Jean Jensen wrote:
> Hejsa.
>
> Jeg skal hjælpe en god ven med et lille regnestykke på hans
> hjemmeside, som tilbyder persontransport:

Brug googlemaps, her kan du få præcis antal kørelængde fra en adresse
til en anden.

Et rigtig godt eksempel er
<http://findvej.dk/>

Tryk på ruteplan, og derefter 2 forskellige postnumre, så har man hele
vejen.

Istedet for input felter, så kan du bare smide 2 select bokse ind med de
postnumre der kan vælges.

Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408191
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste