Avatar billede myst1098 Nybegynder
10. november 2006 - 11:17 Der er 13 kommentarer og
1 løsning

løbe kalender

Jeg skal lave en lille løbe kalender (log) hvor jeg indtaster:

* Kilometer
* Tid

Programmet skal så beregne gennemsnitshastigheden samt hvor hurtigt jeg løber en kilometer.

Jeg har lavet det i excel hvilket jo er nemt nok men jeg kan simpelthen ikke finde ud af, hvordan jeg laver de 2 beregninger i PHP. Er der en der kan hjælpe ?
Avatar billede well_r Nybegynder
10. november 2006 - 23:31 #1
jeg antager at du godt kan finde ud af at smide ting ind i en database eller lave en form til at indtaste ting..
dine beregninger er som følger:

Kilomenter/tid

så skal du bare huske at skrive tiden i timer..
dvs.. 1,5 = 1 time og 30 min..
ellers skal du også regne det ud..

gennemsnitshastigheden kræver bare:
$all_km = alle dine kilometer lagt sammen
$all_tid = tiden lagt sammen (husk at bruge 1,5[f.eks!])
$all_km / $all_tid = x km/t
Avatar billede myst1098 Nybegynder
11. november 2006 - 14:53 #2
Selve kaldenderdelen er ikke noget problem. Det er kun de 2 regnestykker der volder problemer.

Jeg kan ikke helt bruge dit forslag. Du bruger kun timer/minutter men jeg skal også have sekunder med. Det vil sige, jeg kender to variabler:

tt:mm:ss samt løbedistancen i km

Jeg skal som sagt kende gennemsnitshastigheden men lige så vigtigt, tiden det tager at løbe 1 kilometer.

Jeg hæver point, for det er vist en svær nød at knække :o)
Avatar billede michaeltryl Seniormester
11. november 2006 - 15:08 #3
jeg tror måske jeg har en ide, men vil lige høre
i databasen gemmer du kun
km og tid (i tt:mm:ss) så vil du have en side der udskriver
gennemsnitshastigheden samt hvor lang tid du var om at øbe 1 km
Avatar billede michaeltryl Seniormester
11. november 2006 - 15:09 #4
hvor lang tid det tager at løbe 1 km vil du have udskrevet i tt:mm:ss
Avatar billede myst1098 Nybegynder
11. november 2006 - 15:24 #5
michaeltryl>

Jeg har ikke lavet databasen endnu så ind til videre gemmer jeg slet ikke noget :o))

Men du er nu inde på det rigtige. Løbekalenderen indeholder:

dato - rutebeskrivelse - antal km - tiden jeg løb på i tt:mm:ss - gennemsnitshastighed - 1 km løbet på tt:mm:ss

Og ja, tiden det tager at løbe en km skal være tt:mm:ss
Avatar billede myst1098 Nybegynder
11. november 2006 - 15:25 #6
I formen vil jeg så udfylde de 4 første felter og lade en formel klare de 2 sidste...
Avatar billede michaeltryl Seniormester
11. november 2006 - 15:27 #7
jeg kan kigge på det på mandag (måske i morgen aften), men vil ikke love der kommer et resultat ud af det.
gør det noget hvis du i kalenderen skal indtaste dato og tiden du startede f.eks kl.12:00:00
og derefter slut tiden f.eks 13:20:44 og din løbs tid bliver regnet ud fra det?
Avatar billede michaeltryl Seniormester
11. november 2006 - 17:15 #8
prøv at se denne side
http://www.magiske-michael.dk/prove/lob/udregn.php
hvis det er sådan du mener er det lavet
på siden er der tre løbs eksempler
i databasen er gemt
- beskrivelse af løbet
- antal km
- start tid
- slut tid
Avatar billede myst1098 Nybegynder
11. november 2006 - 18:31 #9
michaeltryl>

Kanon at du gider :o)

Dit eksempel regner fint gennemsnitshastigheden ud men tiden pr. km er ikke helt korrekt. I din test1 løber man således en kilometer på 8 sekunder :o))

"gør det noget hvis du i kalenderen skal indtaste dato og tiden du startede f.eks kl.12:00:00 og derefter slut tiden f.eks 13:20:44 og din løbs tid bliver regnet ud fra det?"

Jeg er ikke helt med. Er det ikke bare at gøre det mere besværligt. Hvis jeg kender løbstiden 01:20:44 er et jo underordnet hvad tid jeg startede. Løbstiden er jo bare resultat af to tryk på et stopur.

Jeg forestiller mig at smide alle mine felter i databasen allerede når jeg opretter det enkelte løb. Altså ikke noget med at beregningen skal foretages hver gang jeg laver et udtræk. Så i bund og grund behøver du "kun" at lave eksemplet ud fra 2 i forvejen kendte variabler. Altså:

<?
$km= "25";
$tid ="01:20:44";

og så beregningen...

og de to svar...

echo "Gennemsnitshastighed - ".$ghastighed; (Den har du allerede)
echo "<br";
echo "Min/Km - ".$mkm; (den svære)
?>

Alt det med database er ikke noget problem.. :o)
Avatar billede michaeltryl Seniormester
11. november 2006 - 22:46 #10
ja kan godt se man skal løbe stærkt for at klare det :-)
der var lige en division for meget som nu er rettet og det skulle gerne se fornuftigt ud nu.
databsen ser nu sådan ud

id - int(11)         
  beskrivelse - text           
  km - varchar(255)
  tid - datetime (dette felt skal kun indeholde tiden og ikke nogen dato hvis du har brugt 1 time 24 minutter og 23 sekunder på turen skal der i dette felt stå 0000-00-00 01:24:23 ´hvis der står en dato går udregninge galt hvis du vil have en dato på skal du lave et ekstra felt til den)

her kommer selve koden der klare udtræk fra databasen og udregningen

<?
mysql_connect('****', '****', '****');
mysql_select_db("****");

$tider = mysql_query("SELECT *,DATE_FORMAT(tid, '%H:%i:%s') AS tiden FROM lob") or die(mysql_error());
while ( $a = mysql_fetch_array($tider))
{
$beskrivelse = $a[beskrivelse];
$tiden = $a[tiden];
$tid = $a[tid];
$km = $a[km];

$ts = strtotime($tid);
$time =$ts-943916400;

$gennem =$km/$time*3600;
$kmtid = $time/$km;
$okmtid1 = date("H", $kmtid)-1;
$okmtid2 = date("i:s", $kmtid);


echo"$beskrivelse<br>";
echo"<b>antal km:</b> $km<br>";
echo"<b>Turen tog i alt:</b> $tiden<br><br>";
echo"<b>i gennemsnit løb du:</b> $gennem km/timen<br>";
echo"<b>Du løb 1 km på:</b> $okmtid1:$okmtid2 <br><hr>";
}
?>
Avatar billede myst1098 Nybegynder
11. november 2006 - 23:41 #11
Det ser sgu godt ud :o)

Jeg kigger det lige igennem i morgen og vender tilbage med kommentarer ..
Avatar billede michaeltryl Seniormester
12. november 2006 - 00:28 #12
helt okay
Avatar billede myst1098 Nybegynder
12. november 2006 - 19:15 #13
Jamen kan du SÅ få smidt et svar, det virker bare som det skal :o)
Avatar billede michaeltryl Seniormester
12. november 2006 - 20:51 #14
fantastisk her er et svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester