Avatar billede scaniav8 Nybegynder
13. juni 2005 - 15:44 Der er 13 kommentarer og
1 løsning

Opdatere onlinetid / kroner, fejl ved kroner

Hey...

Jeg har en kode som skal opdatere onlinetid/kroner mens man er inde på chatten.
Altså dvs. en refresh hvert minut for onlinetid, men hvad med kroner når man kun skal have 6 i timen??



<?php
session_start();
if (session_is_registered("Brugernavn")) {

include("mysql.php");

$res = mysql_query("SELECT * FROM brugersystem WHERE Brugernavn = '$_SESSION[Brugernavn]'");
$row = mysql_fetch_array($res);

if($_GET[page] == "e"){
$_SESSION[updatime] = time();
header("Location: ?page=s");
}
elseif($_GET[page] == "s"){
echo'<META HTTP-EQUIV=Refresh CONTENT="60; URL=?page=a">';
}
elseif($_GET[page] == "a"){

$loggout = time();
$additional_online_seconds = $loggout - $_SESSION[updatime];

$points = ($additional_online_seconds / 60) / 10;

mysql_query("UPDATE brugersystem SET onlinetid = $row[onlinetid]+$additional_online_seconds WHERE Brugernavn = '$_SESSION[Brugernavn]'");
mysql_query("UPDATE brugersystem SET kroner = $row[kroner]+$points WHERE Brugernavn = '$_SESSION[Brugernavn]'");
echo'<META HTTP-EQUIV=Refresh CONTENT="0; URL=?page=e">';
}
}
?>


Nogle der kan se hvad jeg skal rette?
Avatar billede nielle Nybegynder
13. juni 2005 - 15:54 #1
Hvis du ikke angiver at det er float-division så får du automatisk en heltals division. Prøv med:

$points = (1.0 * $additional_online_seconds / 60.0) / 10.0;
Avatar billede scaniav8 Nybegynder
13. juni 2005 - 15:58 #2
Men vil det hjælpe? Den henter jo automatisk den side der hvert 60. sekund, så den kan ikke nå at dividere fra 60 minutter, men kun fra 1 minut, og så får man ingen kr...hvis du forstår
Avatar billede nielle Nybegynder
13. juni 2005 - 17:42 #3
Hvordan har du defineter feltet kroner i din tabel? Som et heltal-type eller som en float-type?
Avatar billede scaniav8 Nybegynder
13. juni 2005 - 18:18 #4
det står som f.eks kroner = 151, altså uden decimaler
Avatar billede nielle Nybegynder
13. juni 2005 - 18:31 #5
Hvis du ændre din "kroner" til en float-type, kan du begynde at regne med øre-beløb også.

Alternativt kunne du i stedet simpelthen tælle "reloads" og så omregne dem til kroner til sidst.
Avatar billede scaniav8 Nybegynder
13. juni 2005 - 18:45 #6
Hm :s...kan du skrive et eksempel? lyder lidt indviklet :)
Avatar billede nielle Nybegynder
13. juni 2005 - 19:05 #7
Hvilken af dem? Den første eller den sidste?
Avatar billede scaniav8 Nybegynder
13. juni 2005 - 19:30 #8
[quote]
Hvis du ændre din "kroner" til en float-type, kan du begynde at regne med øre-beløb også.

Alternativt kunne du i stedet simpelthen tælle "reloads" og så omregne dem til kroner til sidst.
[/quote]

Den :P
Avatar billede nielle Nybegynder
13. juni 2005 - 19:42 #9
Altså begge to forslag. :^)
Avatar billede scaniav8 Nybegynder
13. juni 2005 - 19:44 #10
[quote]
Alternativt kunne du i stedet simpelthen tælle "reloads" og så omregne dem til kroner til sidst.
[/quote]

Oops =) Mente den der hehe
Avatar billede nielle Nybegynder
13. juni 2005 - 19:46 #11
Ok, var ellers lige gået igang med at skrive på den første ;^)
Avatar billede nielle Nybegynder
13. juni 2005 - 19:52 #12
Jo altså,

Du indføre en søjle i din tabel som hedder noget i stil med Reloads. Den skal vare være en integertype.

Der hvor du nu opdatere dine kroner i databasen, har du så følgende SQL i stedet:

mysql_query("UPDATE brugersystem SET Reloads = Reloads+1 WHERE Brugernavn = '$_SESSION[Brugernavn]'");

For hver gang at siden reloader med $_GET[page] == "a" betingelsen tælles Reloads op. Når du skal udregne prisen udtrækker du værdien fra Reloads. Da der er 60 Reloads på en time beregner du simpelthen prisen efter følgende formel:

6.0 * (Reloads / 60.0)

Hvor de første 6.0 er timeprisen på 6 kr. Denne formel kan simplificeres til:

Reloads / 10.0
Avatar billede scaniav8 Nybegynder
22. juni 2005 - 15:24 #13
opdaterer spørgesmålet..!
Avatar billede nielle Nybegynder
22. juni 2005 - 17:47 #14
Hvad mener du?
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