Jak zrobić aby adresy IP po 24 godzinach kasowali się?


(Saver) #1

Witam, dzisiejszy problem polega na tym że chce zrobić aby adresy IP z licznika po 24 godzinach zamieniali się na "0".

Już próbowałem coś takiego zrobić ale coś nie działa.

mysql_query("UPDATE bc_licznik SET ip = 0>);

Bardzo proszę o pomoc.


(Grzelix) #2

Napisz trochę jaśniej bo nie dokońca rozumiem co chcesz zrobić.

pierwsze pytanie co ma się usuwać jakiś licznik czy rekordy.

drugoe:

Ta adresy mają się usuwać co 24 h (raz na dobe)

czy kiedy ich data wrzucenia do bazy będzie większa od 24h

i jeszcze czy to ma być stricte zapytanie sql czy masz do dyspozycji jakiś język programowania (PHP na przykład)


(Pioterw) #3

Chodzi o anonimizację adresów IP.

Potrzebne Ci pole z datą w bazie. Np.:

ALTER TABLE bc_licznik ADD COLUMN access_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP;

i potem

UPDATE bc_licznik SET ip=0 WHERE access_time < NOW() - 1 day;

Trochę mogłem pomieszać słowa kluczowe, ale generalnie o to chodzi.

Oczywiście zapytanie musi być wywoływane przy każdym wejściu na stronę.

Alternatywą jest ustawienie crona raz dziennie z odpowiednim skryptem.


(Saver) #4

Jak chciałem dodać UPDATE bc_licznik SET ip=0 WHERE access_time < NOW() - 1 day; to zwróciło mi taki komunikat. #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'day' at line 1 -- Dodane 06.01.2011 (Cz) 12:52 --

Dodałem do php, więc do jutro, :wink: zobaczymy czy będzie działać.


(Pioterw) #5
UPDATE bc_licznik SET ip = 0 WHERE access_time < CURRENT_TIMESTAMP - INTERVAL 1 DAY;

http://dev.mysql.com/doc/refman/5.5/en/ ... n_date-add

http://dev.mysql.com/doc/refman/5.1/en/timestamp.html


(lazikar) #6

Saver , popraw proszę tytuł, masz tam błąd.


(Marcin E Pc) #7

Ewentualnie możesz jeszcze użyć Crona. A jak nie, to możesz też dodać pole z godziną dodania i sprawdzać przy kolejnym dodaniu czy upłynęły 24h.

To moje rozwiązania, poprzednie też mogą być poprawne.

Pozdrawiam