Gå til innhold

beregning med date() og date/time i mysql


Anbefalte innlegg

Prøver å lage en bildevote og skal ha en begrensning på antall stemmer en bruker kan gi pr dag. Jeg har tenkt å sette begrensningen på 1 stemme pr time. Hver gang brukeren stemmer på et bilde blir det lagret i en tabell som heter poeng. Der lagres det dato og tid i date/time format (MYSQL). Det jeg da ønsker er å hente ut siste gang brukeren stemte på det aktuelle, dersom han har stemt på det aktuelle bildet sjekkes tiden da brukeren gav sin stemme mot tiden i øyeblikket. Så spørsmålet blir egentlig hvordan kan man regne mellom date/time formatet i mysql og date() funksjonen i php?

Lenke til kommentar
Videoannonse
Annonse

Det finnes ikke noen optimal løsning for å kjenne igjen brukere. Du har i utgangspunktet tre valg:

1. sessions

2. cookies

3. ip

 

Problemet med sesions er at de kjenner ikke igjen brukeren mellom hvert besøk. De kan da lukke browseren og åpne siden på nytt i en ny browser så får de lov til å stemme igjen,

 

Cookies har også en stor svakhet, firewalls. Det er en del som har firewalls og lignende som hindrer cookies.

 

Da står du igjen med IP. Det største problemet med IP er at dersom flere surfer gjennom samme router så er det kun en av de som får stemme.

 

Som sagt så er det ingen perfekt løsning, men IP er ganske bra.

 

Da lagrer du bare stemmen og hvis du vil benytte date() funksjonen til php så er det enkleste å lagre timestampen. På den måten så sjekker du om det er mer enn timestamp nå + 60 minutter (60 * 60) siden stemme ble avgitt. MySQL har også bra funksjoner for time og date, men forskjellen på hastigheten vil være lite så du kan velge det du selv behersker best. Da kan det være kjekt å holde seg til dette formatet hele tiden og ikke blande mellom datoformateringene. Løsningen er enkel selv om du vil bruke begge deler, ta en kikk på FROM_UNIXTIME() eller UNIX_TIMESTAMP().

Endret av ????????
Lenke til kommentar

er ikke noe problem å gjenkjenne brukere siden de må logge på for å stemme og hver bruker har sin egen id :)

 

 

** Fant ikke noe om FROM_UNIXTIME() eller UNIX_TIMESTAMP() i php håndboka. :(

 

Foresten hva er timestamp funksjonen i mysql? og hvordan opdateres den? har hørt at den skal opdatere seg selv automatisk hver gang posten blir opdatert? men det har jeg alldri fått til

Endret av shagg0r
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...