07. november 2004 - 22:31
Der er
17 kommentarer og 1 løsning
Tid i php?
Hej, jeg vil udskrive en onlinetid folk har været online i, men den kokser lidt, den siger de har 305517 timer, 27 minutter. Når man logger ind laver jeg en: <?php $tid = time(); mysql_query("UPDATE brugere SET timeout = '$tid', online = 'ja' WHERE brugernavn = '$_SESSION[brugernavn]'") or die(mysql_error()) ?> Når de logger ud laver jeg en: <?php //connecting osv. her op.. $tid = time(); $timeout = $online[timeout]; $minus = $tid-$timeout; $ol = $online[timeout]; $plus = $minus+$ol; mysql_query("UPDATE brugere SET timer = '$plus' WHERE brugernavn = '$_SESSION[brugernavn]'") or die(mysql_error()); ?> Og når det skal udskrives: <? $hour2 = $row['timer']/3600; $hour = floor($hour2); $min = floor(($hour2-$hour)*60); if($min < 10)$min = "0".$min; ?> <?php echo "$hour timer, $min minutter."; ?> Der mangler en del i koderne, men det er det som er inholdet fra timesystemet, der er noget jeg gør gjaldt men hvad? :-s
Annonceindlæg fra QNAP
07. november 2004 - 22:34
#1
Det skal lige siges at ved logud er $online den som tager fra brugere af.. altså nornalt laver men $row men min er $online
07. november 2004 - 22:37
#2
ved $tid = time(); $timeout = $online[timeout]; $minus = $tid-$timeout; $ol = $online[timeout]; $plus = $minus+$ol; er det $ol = $online[timer]; istedet
07. november 2004 - 22:40
#3
Spg nummer /559000 =)
07. november 2004 - 22:43
#4
Fandt selv ud af det:) undskyld jeg oprettede spg.
07. november 2004 - 23:13
#5
Nej, virkede ikke aligevel.. En eller anden som kan, får self. points i et nyt spg, hvor der står point til 'navnet' :)
Slettet bruger
08. november 2004 - 00:22
#6
Du tager det forkerte tal her: $ol = $online[timeout]; Det skulle nok have været $ol=$online['timer'] Derudover, så husk '' om feltnavnene i arrays. PHP plejer at gætte hvad du mener, men det kan skabe fejl, som er meget svære at opdage, når de mangler.
08. november 2004 - 00:34
#7
Virker dog ikke. :(
Slettet bruger
08. november 2004 - 00:43
#8
Prøv at lave udskriften om til: <? $hour2 = $row['timer']/3600; $hour = floor($hour2); $min = floor(($hour2-$hour)*60); if($min < 10)$min = "0".$min; ?> <? $sek=$row['timer'] % 60; $min=($row['timer']-$sek) % 3600; $hour=($row['timer']- $sek - ($min * 60))/3600; echo "$hour timer, $min minutter, $sek sekunder."; ?>
Slettet bruger
08. november 2004 - 00:43
#9
Øh. Jeg mente kun <? $sek=$row['timer'] % 60; $min=($row['timer']-$sek) % 3600; $hour=($row['timer']- $sek - ($min * 60))/3600; echo "$hour timer, $min minutter, $sek sekunder."; ?>
08. november 2004 - 00:51
#10
når den runder over 60 sek, udskriver den.. -0.983333333333 timer, 60 minutter, 1 sekunder.
08. november 2004 - 00:53
#11
sekunder virker =)
08. november 2004 - 00:53
#12
Men ikke minutter den og timerne.
08. november 2004 - 00:56
#13
Og, over de 120 så siger den -1.96666666667 timer, 120 minutter, 57 sekunder.
08. november 2004 - 01:21
#14
Er du der?
Slettet bruger
08. november 2004 - 01:29
#15
<? $tid=$row['timer']; $sek=$tid % 60; $tid=($tid-$sek)/60; $min=$tid % 60; $hour=($tid-$min)/60; echo "$hour timer, $min minutter, $sek sekunder."; ?>
Slettet bruger
08. november 2004 - 01:31
#16
Og nu smutter jeg for i aften, så hvis det ikke virker, vil jeg først reagere i morgen engang. Måske først til aften.
08. november 2004 - 13:10
#17
sandbox - Det virker næsten.. Jeg har lavet en online.php som automatisk opdater timerne hele tiden. Men det passer ikke, et sekundt gælder for ca. 5 sek. Altså man får flere timer heletiden.. Min kode: <? session_start(); include 'db.php'; $res = mysql_query("SELECT * FROM brugere WHERE brugernavn = '$_SESSION[brugernavn]'"); while($online = mysql_fetch_array($res)) { $tid = time(); $timeout = $online['timeout']; $minus = $tid-$timeout; $ol = $online['timer']; $plus = $minus+$ol; mysql_query("UPDATE brugere SET timer = '$plus' WHERE brugernavn = '$_SESSION[brugernavn]'") or die(mysql_error()); ?> <?php } ?> <body onload='loadet();'> <script> function loadet() { setTimeout("location.reload(true)",3000); } </script>
08. november 2004 - 19:59
#18
En der finder fejlen?
Vi tilbyder markedets bedste kurser inden for webudvikling