Om het uur account update
Hoe zou ik dit kunnen doen...
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 -
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...
Alvast bedankt:D
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:
Zie Voorbeeldje die je zelf mag uitwerken:
En dan per uur 1000 erbij tellen... maar hoe doe ik dat?:o
Deze berekening mag je echt zelf uitzoeken, zie de handleiding, ik ga hem niet voor je maken. Daar leer je nog eens wat van.
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?
ok ik probeer wat:)
ow ja moet die tabel speciaal zijn?:o
Code (php)
1
2
3
4
5
6
7
8
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()
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
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.
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
Tip: Gebruik de functies TIMEDIFF (levert een tijd op, inclusief de uren) en HOUR. Dan is het appeltje-eitje en klaar ben je.
:-) sorry =) mijn message was gericht aan manaus =) aangezien ik het idee had dat hij het op zo'n manier wilde doen..
hoe zet ik bij het registeren de tijd zoals het hoort voor die now()
Wat bedoel je precies? NOW() geeft gewoon de datum en tijd van het huidige moment weer...
Quote:
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...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.