Verwijderd schreef op dinsdag 10 november 2009 @ 22:05:
@Voutloos: dat zal best maar toch wil ik het niet.
@Atlex, dankje voor de cheatsheet. In plaats van datatype TIME gebruik ik nu TIMESTAMP, ik denk dat ik die moet gebruiken aangezien je zegt dat time() een timestamp geeft. Ik gebruik nog steeds dezelfde code en toch vind ie 't niet tof, als uitslag krijg ik:
2009-11-10 22:02:21
20964749
De datum en tijd word nu prachtig weergegeven, maar hij vertikt t vooralsnog om te berekenen hoeveel minuten er nou precies zijn verstreken. Iemand een idee?
Je maakt twee foutjes. Ten eerste zeg je dat je een TIMESTAMP-veld gebruikt, maar je gebruikt een DATETIME veld. Niet dat het veel zou uitmaken, een TIMESTAMP binnen MySQL is namelijk heel iets anders dan de unix timestamp die time() teruggeeft. Als je die cheatsheet nog eens bekijkt zie je dat in de MySQL-variant gewoon hetzelfde staat als in een DATETIME veld, maar dan zonder spaties en scheidingstekens.
Je kunt nu twee dingen doen: Je kunt van het veld een gewoon INT-veld maken, en er een unix timestamp in zetten, of je kunt het laten zoals het is en met
deze post alsnog een unix timestamp terugkrijgen. Dat laatste zou ik persoonlijk alleen doen als ik een redelijk scenario kan bedenken waarin ik in de toekomst nog wat heb aan het feit dat het om een DATETIME-veld gaat, dat is vooralsnog niet zo namelijk.
Gomez12 schreef op dinsdag 10 november 2009 @ 22:13:
[...]
Tja hangt ervanaf wat je precies wilt doen. Als het enkel blijft op het niveau van x tijd verstreken betekent actie y dan werkt het perfect zonder cron.
Wil je het uitbreiden naar een complexer script met interactie etc dan is cron echt the way to go.
Je hebt misschien gelijk, maar dat hangt net af van de uitbreiding. In het geval van de TS (want dat is het enige geval dat er toe doet) is een cronjob gewoon niet nodig. Alleen als je vaak alle gegevens nodig hebt is een cronjob handiger. Als je telkens slechts enkele rijen nodig hebt, is deze oplossing bovendien 'eerlijker' (de eerste speler krijgt/verliest eerder punten dan de laatste, en kan daardoor een achterstand oplopen/voorsprong krijgen), maar dat is alleen in de extremere situaties significant.
In ieder geval ben ik van mening dat je in dit geval een cronjob achterwege kunt laten. De discussie bij wat voor scenario je dan wel een cronjob moet gebruiken is een interessante, maar dat is iets voor een ander topic denk ik.
Verwijderd schreef op woensdag 11 november 2009 @ 01:04:
[...]
Ja, het kan nu dus zonder cron. Maar nu ik het anders bekijk... Je wilt ook niet dat hij per request alle users opnieuw gaat berekenen,
want alle gegevens (van alle gebruikers) moeten altijd up-to-date zijn lijkt me. Misschien dat cron dan toch wel de beste oplossing is, vooral als er veel gebruikers komen.

Dat lijkt mij geen logische aanname. Als het gaat om een beetje een doorsnee textbased 'mmog', dan zijn er bij het opvragen van dit soort details vaak hooguit één of twéé spelers waarvan die gegevens relevant zijn. Het is volgens mij zelden zo dat je dergelijke details ineens van alle spelers nodig hebt.
edit:
Wat een spelfouten, vergeef me, het is half vier 's nachts

[
Voor 13% gewijzigd door
Patriot op 11-11-2009 03:30
]