Maak een query waarin je kijkt of men vandaag al een record heeft (dus die 300 minuten). Als dat niet het geval is, insert je een record. Et voila, simple as that ;-).
Hoe sla jij de tijden op in de database? Het lijkt mij dat je een begin- en eindtijd opslaat (mét datum!), je kunt dan dus het verschil gaan berekenen (zie TIMEDIFF() of AGE() ) . Ook kun je de verschillen per record weer bijelkaar gaan optellen om zo tot een totaal per user te komen. Op basis van deze gegevens kun je dan per dag kijken of iemand z'n 300 minuten al heeft verbruikt. Zelfs een starttijd vóór middernacht en een eindtijd ná middernacht is geen enkel probleem.
Maar alles staat of valt bij het correct opslaan van je begin- en eindtijden.
Sla gewoon telkens het tijdstip op van de laatst uitgevoerde actie. Als een gebruiker opnieuw inlogt / actie uitvoert, controleer je eerst of de laatst uitgevoerde actie niet 'de vorige dag' was.
Als dat wel het geval is, voer je eerst een update query uit om zn credits weer op 300 te zetten en voert daarna pas de actie uit...
Sla gewoon telkens het tijdstip op van de laatst uitgevoerde actie. Als een gebruiker opnieuw inlogt / actie uitvoert, controleer je eerst of de laatst uitgevoerde actie niet 'de vorige dag' was.
Als dat wel het geval is, voer je eerst een update query uit om zn credits weer op 300 te zetten en voert daarna pas de actie uit...
Klinkt simpel en begrijpelijk. I like it.
Nu alleen de vraag:
"controleer je eerst of de laatst uitgevoerde actie niet 'de vorige dag' was. "
Dat tijdstip, je mag kiezen hie ik dat opsla, date, timestamp. Maakt niet uit.
Als je me maar weet te vertellen hoe ik het controleer "of de laatst uitgevoerde actie niet 'de vorige dag' was. "
Je kijkt niet of de dag voorbij is, je kijkt naar het tijdstip van de laatste actie van een gebruiker. Als die voor een bepaald tijdstip ligt, weet je dus dat zijn laatste actie de vorige dag was...