auto reset i mysql tabel?

Tags:    databaser

Jeg er igang med mit projekt med et nyt spilsite og vil gerne have at man kan se hvilke spil der har været mest populære eller højest rated hver måned, uge og dag. Jeg er nået frem til, at tre kolonner i tabellen, der automatisk nulstilles hver dag/uge/måned vil være det nemmeste....

Kan det lade sig gøre og hvordan?

mange tak :)



10 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Så tilføjer du, som du selv siger, et kollonne med sidst nulstillet.

Dit tjek vil så se ud alla dette:

Fold kodeboks ind/udKode 


Man behøver ikke at gå ind på den hver gang det er den 1. osv.

Der er jo ingen som kan se det, hvis ikke man går ind på siden right?
Og når man går ind på siden, så vil den jo nulstille... :)

Du skal bare sørge for at din dato i databasen er lavet i formatet

y: år
m: måned
d: dag
Alle 2-cifrede!

yy-mm-dd

Men husk nu, at koden ovenover IKKE er testet, blot en skitse..




kig eventuelt på denne tråd: http://www.udvikleren.dk/PHP/Thread.aspx/6/19554/



Hmm... Der er nogle servere som understøtter automatiserede opgaver, men det nemmeste er vel at lave et tjek hver gang siden besøges.

Altså, jeg bruger det fx. i en "Hvem er online lige nu"-funktion.

På forsiden inkludere, eller udføre, en kode som tjekker hvad dag det er. (med date();) og hvis det er første dag i måneden, første dag i ugen, året, what ever, så slet den kollonne...

Kunne gøres med noget i retning af:

Fold kodeboks ind/udKode 


Har ikke testet det, men du burde kunne fange principet i det..



ja.. har tænkt en del over at gøre det på den måde du foreslår... hehe (det ka enhver jo sige :P)

men så vil de jo blive nulstillet hver gang man besøger siden og det er d. 1. ?

Jeg har tænkt på at lave noget med en kolonne mere til hver som sætter en dato når en kolonne er blevet nulstillet (altså "sidst nulstillet")...
Og så lave en "if" med at hvis datoen er den samme som den der står så skal den ikke nulstilles igen... men det kræver jo at siden skal besøges hver gang det er mandag og hver gang det er den første osv... nogen forslag? :)



tror ikke jeg forstår hvad du mener?

den vil jo kun nulstille hvis det fx er mandag... og hvis man så kommer derind tirsdag og den ikke er nulstillet så gør den det jo heller ikke fordi der står "if(date(D) == "Mon""
eller hvad?



Du har ret...

Det skal rettes til ||

Altså så det bliver sådan her:

Fold kodeboks ind/udKode 




Den anden linje (i både måned, uge og år):
if(date(j) == 1 || (date("y-m-d") != $maaned || date("y-m-d") > $maaned)) {

vil den ikke nulstille sig igen hver dag nu? altså hvis vi siger vi har d. 2. og den er blevet nulstillet: så vil nuværende dato jo være forskellig fra sletdato ( || (date("y-m-d") != $maaned )
så skal man jo egentlig også til at have en kolonne til hver som kun indeholder måned så den kan tjekke om den er blevet nulstillet i nuværende måned?

eller kan man hive det ud af "sletdato" med "substr("sletdatoen",3,2)" ?



Indlæg senest redigeret d. 28.02.2007 23:59 af Bruger #11056
kig eventuelt på denne tråd: http://www.udvikleren.dk/PHP/Thread.aspx/6/19554/


ja, det ku godt være den måde ville være nemmere ved "dag" og "uge", men det bliver jo svært at sætte hvor lang tid der skal gå før "måned" og "aar" skal nulstilles, da antallet af dage på måneden varierer og så skal skudår jo også medregnes ....
...eller hvad? :P



tror jeg har lavet en fungerende kode der resetter en tabel og sætter en ny reset-date hver dag:
Fold kodeboks ind/udKode 


burde det ikke virke helt perfekt?

men jeg ved bare ikke rigtigt hvordan jeg skal lave en med hver uge og hver måned og hvert år?



Indlæg senest redigeret d. 01.03.2007 17:19 af Bruger #11056
lille rettelse:
resetter hver dag:
Fold kodeboks ind/udKode 


resetter hver uge:
Fold kodeboks ind/udKode 

...men hvordan vil den reagere på et årsskifte? bliver man nød til at lave "års-resetteren" så den nulstiller allesammen?
eller er der nogen der har andre forslag?



t