Avatar billede n-emy Nybegynder
13. oktober 2008 - 21:43 Der er 8 kommentarer og
1 løsning

Hente hundrededele i PHP?

Hejsa allesammen

Jeg er ved at lave et såkaldt rekordsystem, hvor man skal kunne indsende sine rekorder. Man indtaster således antalle af timer, minutter og sekunder man har været om den givne ting, og så det gøres således:

$rekorden = ($_POST[timer]*60*60)+($_POST[minutter]*60)+$_POST[sekunder];

Når jeg så henter dem ud fra databasen gør jeg følgende:

$timer = FLOOR($nummeret['rekord']/3600);
$minutter = FLOOR(($nummeret['rekord']%3600)/60);
$sekunder = $nummeret['rekord']%60;

Jeg er dog nu kommet i tanke om, at jeg har glemt, at også hundrededele spiller en vigtig faktor, så hvordan tilføjer jeg hundrededele så det også ses i rekorden? Og hvordan trækker jeg det ud efterfølgende?

Mvh
Avatar billede jakobdo Ekspert
13. oktober 2008 - 21:48 #1
Hvorfor ikke gemmer data i 4 respektive felter:

timer, minutter, sekunder og hundrede-dele ?
I stedet for at beregne hver gang ?
Avatar billede n-emy Nybegynder
13. oktober 2008 - 21:57 #2
det var egentlig bare for at spare plads, og for at systemet selv kunne foreslå rekordens placering i forhold til andre rekorder.
Avatar billede arne_v Ekspert
13. oktober 2008 - 22:03 #3
Jeg mener helt klart at det er godt at gemme det som et tal.

$rekorden = ($_POST['timer']*60*60*100)+($_POST['minutter']*60*60)+($_POST['sekunder']*100)+$_POST['hundrededele'];
Avatar billede n-emy Nybegynder
13. oktober 2008 - 22:17 #4
arne_v:

Hvad skal tallene så være når jeg trækker dem ud fra databasen?

I forhold til min nuværende:

$timer = FLOOR($nummeret['rekord']/3600);
$minutter = FLOOR(($nummeret['rekord']%3600)/60);
$sekunder = $nummeret['rekord']%60;
Avatar billede arne_v Ekspert
13. oktober 2008 - 22:25 #5
Utestet:

$timer = FLOOR($nummeret['rekord']/360000);
$minutter = FLOOR(($nummeret['rekord']%360000)/60);
$sekunder = FLOOR(($nummeret['rekord']%6000)/60);
$hundrededele = $nummeret['rekord']%100;
Avatar billede n-emy Nybegynder
13. oktober 2008 - 23:44 #6
Hmm der er tilsyneladende et problem.

Det der bliver indsat som
10 minutter, 10 sekunder og 10 hundrededele bliver til:
616 minutter 16 sekunder 10 hundrededele
Avatar billede arne_v Ekspert
14. oktober 2008 - 00:45 #7
$rekorden = ($_POST['timer']*60*60*100)+($_POST['minutter']*60*100)+($_POST['sekunder']*100)+$_POST['hundrededele'];

og

$timer = FLOOR($nummeret['rekord']/360000);
$minutter = FLOOR(($nummeret['rekord']%360000)/6000);
$sekunder = FLOOR(($nummeret['rekord']%6000)/60);
$hundrededele = $nummeret['rekord']%100;
Avatar billede n-emy Nybegynder
14. oktober 2008 - 09:20 #8
Fik det til at virke, mange tak =) Svar?

Hvis der er andre der har søgt svar på et lignende spørgsmål ser udtrækket således ud:

$timer = FLOOR($rekorder['rekord']/360000);
$minutter = FLOOR(($rekorder['rekord']%360000)/6000);
$sekunder = FLOOR(($rekorder['rekord']%6000)/100);
$hundred = $rekorder['rekord']%100;
Avatar billede arne_v Ekspert
14. oktober 2008 - 15:26 #9
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