Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Wykonaj coś po pewnym czasie
Forum PHP.pl > Forum > Przedszkole
kisiel18
Czy jest mozliwosc aby: jesli plik php otrzyma jakas wartosc przez posta i uptaduje wartosc w tabeli a nastepnie po pewnym okreslonym czasie zmieni ta wartosc w tabeli na inna.


Wartosc bedzie przechodzila ajaxem do pliku i to bez najmniejszego problemu potrafie zrobic ale zmiana wartosci juz koniecznie musi sie odbywac na serwerze po jakims czasie (czyli ze musi sie to robic automatycznie po pewnym czasie a nie ze ajax przesle komende). Jest taka opcja w php - zrob cos po pewnym czasie questionmark.gif
peter13135
nie rozumiem o co chodzi :/
Louner
Musisz do tego użyć Cron, albo czegoś podobnego. Chodzi o to, żeby coś wywołało z zewnątrz skrypt PHP, który zmodyfikuje bazę.
kisiel18
plik php dostaje jakas wartosc metoda POST przez ajaxa

ta wartosc jest wlozona do bazy danych

mija 30 sekund i ta wartosc jest usunieta z tabeli i np miejsce zostaje puste ?
Louner
Ewentualnie możesz dodać do tej tabeli dodatkową kolumnę z czasem dodania rekordu (dla wygody niech to będzie INT, a nie DATESTAMP, czy coś podobnego), a potem na samym początku Twojego skryptu wstawić kod podobny do tego:

  1. <?php
  2. $halfHour = 1800;
  3. db_query("DELETE FROM twoja_tabela WHERE czas_dodania_rekordu < ".(time()-$halfHour).";");
  4. ?>


Wtedy na stronie na pewno nie pojawią się niepożądane dane. Jeżeli zależy Ci, żeby wartości kasowały się automatycznie, to zostaje tylko Cron. tongue.gif
peter13135
No to jak ktoś wyżej napisał, można użyć crona.

Ale.. widzę jeszcze inne rozwiązanie, bez użycia crona. Mianowicie dodaj sobie kolumnę date (int) dodawaj do niej uniksowy znacznik czasu (time()) i przy wywoływaniu skryptu na początku rób zapytanie
  1. DELETE FROM tabela WHERE date<now()-30
kisiel18
tak panowie ale jesli wartosc nie dotrze to nie wywoła tych skryptow usuwania i wartosc w tabeli zostanie

a ja potrzebuje koniecznie zeby sie usuwala sama






- mam nadzieje ze wiecie o co mi chodzi smile.gif



aeaeae
Możesz napisać do czego konkretnie tego potrzebujesz?

Może wystarczy np. przypisać do zmiennej sesji czas i te dane, które mają się po 30s kasować?
Fifi209
Napisz sobie skrypt do obsługi kolejki, do kolejki dodawaj zadania, kolejka może być trzymana w bazie bądź pliku, ja bym stawiał na rozwiązanie z bazą.
Następnie co określony czas wywołujesz skrypt, który wykonuje zadania umieszczone w kolejce.

To tyle, jeżeli dobrze zrozumiałem.
PeterBass
Możesz też spróbować instrukcji sleep. wink.gif
kisiel18
PeterBass - WLASNIE O TO CHODZILO - NIE ZNALEM TEGO ALE TO POMOGLO smile.gif DZIEKI WIELKIE exclamation.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.