Ik wil een soort spel maken op mijn forum. Per seconde moeten er punten gegeven worden aan elk lid. Die punten worden opgeslagen in de database. Maar ik kan natuurlijk niet elke seconde een query uitvoeren. Weet iemand hoe ik dit het beste kan doen?
met time de tijd opnemen, en dan op iedere pagina checken of er al een X aantal seconden om zijn, en dan 1 keer per X seconden een querie laten uitvoeren
je kan ook met crons gaan werken.
Die crons werken iig precies het zelfde als hierboven gemeld staat.
alleen maak je dan een apart script ervoor zodat het overzichtelijker is wat er wordt uitgevoerd in secondes.
Maar die crons geef je wel dezelfde waarde als wat php newbie en hipska zeggen
Iedere minuut is dat wel veilig? Ik moet natuurlijk ook aan de buren denken op de server.
En zou ik dit dan met javascript kunnen doen? Dat op de pagina zelf lijkt alsof er elke seconde punten bij komen, maar dat die dan elke minuut in de database word bijgewerkt?
De database kan uitstekend rekenen met datums en tijden, zie bv. hoofdstuk 12.5 van de MySQL handleiding.
Zo kun je bij een update dus prima berekenen hoeveel seconden, minuten, uren, etc. er sinds de laatste update zijn verstreken. Op basis van dit resultaat kun je dan een X-aantal punten gaan toevoegen.
Een cron-job is voor dit soort functies volkomen overbodig. Waarom? Omdat iemand die niet aan het spelen is, ook niet hoeft te weten hoeveel punten hij/zij heeft. Wil je 1x per dag om 00:00 een tussenstand bepalen en deze opslaan voor het nageslacht, dan heb je daar een cron-job (of een goede wekker...) voor nodig.