Jak dekrementować codziennie pole w tabeli?

Odpowiedz Nowy wątek
2015-01-05 20:21
0

Siemka, dodałem do tabeli INT który oznacza ile dni pewnego przywileju pozostało, jak mogę codziennie decremetować tą wartość o 1? ?

Pozostało 580 znaków

2015-01-05 20:26
0

Nie lepiej zapisać moment w którym rekord został dodany? Wtedy gdy wchodzisz na stronę, sprawdzasz ile dni minęło od tego czasu i robisz co tam chcesz.
Czasami widzę też podobne rozwiązanie, ale rozwiązanie trochę odwrotnie tj. zapisujesz datę kiedy dane odliczanie ma się skończyć, w sumie podobne, ale wtedy nie trzeba nic odejmować. Szczególnie przydane jeżeli mówimy np. o dostępnie premium do jakiejś części witryny.

edytowany 1x, ostatnio: Zellus, 2015-01-05 20:28

Pozostało 580 znaków

2015-01-05 20:30
0

No dobra, to wtedy jak?
przy czym w $return jest informacja o ile dni dodać do obecnej przypisanej tam wartości :)

mysql_query("UPDATE shops SET ads=NOW()+'ADDDATE($return)' WHERE login='$nickname'");

tzn. jak zrobić to coś a'la premium ?

dodanie znacznika <code class="php"> - @furious programming

edytowany 2x, ostatnio: furious programming, 2015-01-06 01:00
Wstawiaj kod w znaczniki kolorujące składnię; - furious programming 2015-01-06 01:00

Pozostało 580 znaków

2015-01-05 20:35

Nie chciałbym strzelać oczywistościami jeżeli już to wiesz, ale data przechowywana jest, najczęściej, w postaci ilości sekund które minęło od 1 stycznia 1970 roku 00:00:00. W tym momencie moim zdaniem staje się oczywiste jak tym operować. Nie pamiętam już dokładnie funkcji w php, więc więcej Ci niestety nie pomogę. Btw zainteresuj się PDO, bo Twój sposób operowania na bazie nie jest specjalnie bezpieczny.

Edit: Chyba coś takiego

if($premium_end > time())
  $premium_end += $additional_premium_period_in_seconds;
else
  $premium_end = time() + $additional_premium_period_in_seconds;
query...
edytowany 3x, ostatnio: Zellus, 2015-01-05 20:41

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0