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.
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.
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)
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.
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, zobaczymy czy będzie działać.
UPDATE bc_licznik SET ip = 0 WHERE access_time < CURRENT_TIMESTAMP - INTERVAL 1 DAY;
Saver , popraw proszę tytuł, masz tam błąd.
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