Avatar billede filename Nybegynder
10. november 2004 - 00:12 Der er 6 kommentarer

Går til 0 efter 3 minutter.

Hvordan kan det være at onlinetiden "resetter" efter 3 minutter?

Det skulle da ikke været et problem, her ser i koden:

<?php
$q = mysql_query("select * from brugere WHERE brugernavn = '$row[brugernavn]'") or die(mysql_error());
while($r = mysql_fetch_array($q)){
$online_tid = $r[timeout]-$r[timer];
$min = str_replace("-", "", $online_tid / 60);
$tim = round(str_replace("-", "", $online_tid / 3600));
$dag = round(str_replace("-", "", $online_tid / 84600));
$ok = round($min);
echo "$tim time(r), $ok min.<br />";

}
?>
Avatar billede filename Nybegynder
10. november 2004 - 00:18 #1
Når jeg laver:

<?php
$q = mysql_query("select * from brugere") or die(mysql_error());
while($r = mysql_fetch_array($q)){
if ($_GET[brugernavn] == "$row[brugernavn]"){
$online_tid = $r[timeout]-$r[timer];
$min = str_replace("-", "", $online_tid / 60);
$tim = round(str_replace("-", "", $online_tid / 3600));
$dag = round(str_replace("-", "", $online_tid / 84600));
$ok = round($min);
echo "$tim time(r), $ok min.<br />";
}
}
?>

Udskriver den
0 time(r), 3 min.
0 time(r), 1 min.
0 time(r), 1 min.
0 time(r), 1 min.
0 time(r), 1 min.
0 time(r), 2 min.
0 time(r), 0 min.
0 time(r), 1 min.
0 time(r), 1 min.
0 time(r), 1 min.


Kan det være fordi den skal plusse det, eller noget? er ikke god til matematis i PHP. En der kan hjælpe?
Avatar billede olebole Juniormester
10. november 2004 - 00:19 #2
<ole>

1. Brug gåseøjne i array-kald som disse (det er en fejl at udelade dem):
  $online_tid = $r[timeout]-$r[timer];

2. Det er vanskeligt at sige noget fornuftigt til dit spm, når vi ikke ved, hvad der står i DB'en - og dermed i dine variabler

/mvh
</bole>
Avatar billede filename Nybegynder
10. november 2004 - 00:20 #3
Ikke rigtigt. Det gør den ved alle :(
Avatar billede soccerdad Nybegynder
10. november 2004 - 08:12 #4
Jeg tror at du forvirrer php-compileren lidt. Prøv at lave ét trin ad gangen. Dvs. først
$mellem = str_replace("-", "", $online_tid);
Og dernæst dine beregninger af $min, $tim og $dag baseret på $mellem.
Avatar billede filename Nybegynder
10. november 2004 - 21:56 #5
Hvad mener du, kan du lave et ex?
Avatar billede soccerdad Nybegynder
11. november 2004 - 08:30 #6
$online_tid = $r[timeout]-$r[timer];
$mellem = str_replace("-", "", $online_tid);
$min = ($mellem / 60);
$tim = round($mellem / 3600);
$dag = round($mellem / 84600);
$ok = round($min);

I din udgave laver du str_replace *efter* division, og ikke før, som nok var hensigten.
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