php mysql update dato

Tags:    update

Hej

Jeg er i gang med at lave et meget simpelt kalendersystem, hvor man kan indtaste nogle forskellige opgaver. Nogle af opgaverne vil skulle gentages hver uge, hver måned eller hvert år, og jeg har derfor en tabel i min mysql database, hvor der udover indholdet af opgaven er plads til oplysninger om hvornår opgaven skal gentages.

Jeg vil derfor meget gerne kunne lave en update, som kan ændre datoen i forhold til værdierne i to af felterne.

Jeg ved at dette virker:
UPDATE `arbejde` SET `dato` = DATE_ADD(`dato`, INTERVAL 1 YEAR) WHERE `forny` = '1' AND dato < NOW()

men vil meget gerne kunne udskifte "INTERVAL 1 YEAR" med noget lignende "INTERVAL `hver_antal` `hver_periode`" hvor der er en talværdi i `hver_antal` og en streng (day, week eller year) i `hver_periode`

Kan det lade sig gøre?




2 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Hej.

Tror du ville kunne få noget ud af at læse iCalendar RFC'en.

Det er en standard blandt andet for at gemme events, og events der gentager sig.

Mysql har ikke det du ønsker indbygget.

http://tools.ietf.org/html/rfc5545

pointen er at gemme en event, og så en frekvens, der kan være f.eks 3,man hver måned.

Du skal så selv regne datoerne ud. Kalendere er ikke så simple som man tror..







Jeg har lavet det med en select, hvor jeg løber resultaterne igennem, og for hver række i selecten, kører jeg en update. Det fungerer fint, men kræver nogle flere kald.


Kalendere er ikke så simple som man tror..


Det ved jeg godt, men dette er stadig meget simpelt. Man kan oprette en opgave som skal udføres en bestemt dag. Hvis man vil have opgaven gentaget, kan dette lade sig gøre ved at vælge et tal og en periode (eks. 2. uge). Når opgaven er sat til gentages, og datoen er overskredet, kommer den med i selecten, og updaten, og bliver så sat 2 uger frem.

Opgaverne listes i tekstform, og der vises opgaver for de kommende 30 dage. Så lidt simpelt er det stadig.




t