Om het uur account update

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Manaus

Manaus

19/10/2006 17:31:00
Quote Anchor link
Als er een uurtje vorbij is met er telkens 1000 bj het geld bijkomen in het database.
Hoe zou ik dit kunnen doen...
 
PHP hulp

PHP hulp

18/11/2024 16:34:37
 
Frank -

Frank -

19/10/2006 17:34:00
Quote Anchor link
Waarom zou je dat willen? Er is geen mens 24 uur per dag, 365 dagen per jaar online. Kortom, er is niemand geinteresseerd in deze getallen.

sla een datumtijd op wanneer dit gegeven is bijgewerkt en iedere keer dat je een pagina ververst controleer je hoeveel tijd er is verstreken tussen deze datum en NOW(). Voor ieder uur dat er is verstreken tel je 1000 op bij de huidige waarde. Gevolg: Uitsluitend updates voor die gebruikers die online zijn.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
Manaus

Manaus

19/10/2006 17:37:00
Quote Anchor link
ja dat is niet erg...:) maar dan moet hij dus elk uur 1000 bij dus als ze na 5 dagen online komen moet dat erbij...
 
Manaus

Manaus

19/10/2006 17:40:00
Quote Anchor link
en hoe werkt die ding ? heb je voorbeeldje ofzo?:D
Alvast bedankt:D
 
Frank -

Frank -

19/10/2006 17:50:00
Quote Anchor link
Zie http://dev.mysql.com/doc/refman/4.1/en/date-and-time-functions.html en ga eens aan de slag met de diverse functies.

Voorbeeldje die je zelf mag uitwerken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
UPDATE
  tabelnaam
SET
  waarde = waarde + (1000 * (bereken hier het aantal uren, mag je zelf doen)
WHERE
 userid = 1
AND
  DATE_ADD(datumtijdveld, INTERVAL 1 HOUR) < NOW()
 
Manaus

Manaus

19/10/2006 17:54:00
Quote Anchor link
ja maar eigenlijk moet hij bereken hoe lang het geleden is wanneer hij laatst geld ontvangen heeft, daarna kijk hoeveel uur daar tussen is...
En dan per uur 1000 erbij tellen... maar hoe doe ik dat?:o
 
Frank -

Frank -

19/10/2006 17:57:00
Quote Anchor link
Wat snap je niet aan mijn voorbeeld? In dit voorbeeld hoef je alleen nog maar te berekenen hoeveel uur verschil er zit tussen datumtijdveld en NOW(). De rest van de query heb ik je al gegeven.

Deze berekening mag je echt zelf uitzoeken, zie de handleiding, ik ga hem niet voor je maken. Daar leer je nog eens wat van.
 
Hylke

Hylke

19/10/2006 17:58:00
Quote Anchor link
is toch niet zo moeilijk? eerst haal je uit de database wanneer hij voor het laatst geupdate is, dan haal je de huidige datum + tijd op, vervolgens bereken je het verschil, en klaar?
 
Manaus

Manaus

19/10/2006 17:59:00
Quote Anchor link
ok ik probeer wat:)
 
Manaus

Manaus

19/10/2006 17:59:00
Quote Anchor link
ow ja moet die tabel speciaal zijn?:o
 
Joren de Wit

Joren de Wit

19/10/2006 18:00:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
UPDATE
  tabelnaam
SET
  waarde = waarde + (1000 * (HOUR(NOW() - datumtijdveld)),
WHERE
 userid = 1
AND
  DATE_ADD(datumtijdveld, INTERVAL 1 HOUR) < NOW()


Zoiets? Niet getest maar zou lijkt me moeten werken. Je moet echter niet vergeten ook je datumtijdveld te updaten, anders krijgt iemand er telkens heel veel credits bij...

ps. Wat bedoel je met 'moet die tabel speciaal zijn?'
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Hylke

Hylke

19/10/2006 18:01:00
Quote Anchor link
nee, ik zou een UNIX timestamp gebruiken, dan de nieuwste - de oudste doen, vervolgens de timestamp omrekenen naar uren, (timestamp = in secondes), en klaar ben je.
 
Joren de Wit

Joren de Wit

19/10/2006 18:07:00
Quote Anchor link
@Hylke: Wat is volgens jou het voordeel van van een timestamp als de berekening met een datetime veld ook werkt zoals in mijn voorbeeld? Datetime velden kun je ook gewoon van elkaar aftrekken.

ps. Mijn scriptje net even getest en dat werkt niet...
pps. Gebruik inderdaad liever timediff()!
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Frank -

Frank -

19/10/2006 18:10:00
Quote Anchor link
Tip: Gebruik de functies TIMEDIFF (levert een tijd op, inclusief de uren) en HOUR. Dan is het appeltje-eitje en klaar ben je.
 
Hylke

Hylke

19/10/2006 18:11:00
Quote Anchor link
:-) sorry =) mijn message was gericht aan manaus =) aangezien ik het idee had dat hij het op zo'n manier wilde doen..
 
Manaus

Manaus

19/10/2006 20:22:00
Quote Anchor link
hoe zet ik bij het registeren de tijd zoals het hoort voor die now()
 
Joren de Wit

Joren de Wit

20/10/2006 12:29:00
Quote Anchor link
Wat bedoel je precies? NOW() geeft gewoon de datum en tijd van het huidige moment weer...
 
Frank -

Frank -

20/10/2006 14:02:00
Quote Anchor link
Quote:
Zie http://dev.mysql.com/doc/refman/4.1/en/date-and-time-functions.html en ga eens aan de slag met de diverse functies.
Wanneer je hier ook maar heel even naar had gekeken en ook maar heel even wat had geprobeerd, dan had je al lang gezien wat de functie NOW() doet...
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.