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