Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL] Wykonaj coś po pewnym czasie
kisiel18
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.06.2011

Ostrzeżenie: (0%)
-----


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 (IMG:style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
peter13135
post
Post #2





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


nie rozumiem o co chodzi :/
Go to the top of the page
+Quote Post
Louner
post
Post #3





Grupa: Zarejestrowani
Postów: 99
Pomógł: 5
Dołączył: 20.06.2005
Skąd: Bielsk Podlaski

Ostrzeżenie: (0%)
-----


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ę.
Go to the top of the page
+Quote Post
kisiel18
post
Post #4





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.06.2011

Ostrzeżenie: (0%)
-----


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 ?

Ten post edytował kisiel18 6.06.2011, 14:50:40
Go to the top of the page
+Quote Post
Louner
post
Post #5





Grupa: Zarejestrowani
Postów: 99
Pomógł: 5
Dołączył: 20.06.2005
Skąd: Bielsk Podlaski

Ostrzeżenie: (0%)
-----


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. (IMG:style_emoticons/default/tongue.gif)

Ten post edytował Louner 6.06.2011, 14:54:14
Go to the top of the page
+Quote Post
peter13135
post
Post #6





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
kisiel18
post
Post #7





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.06.2011

Ostrzeżenie: (0%)
-----


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 (IMG:style_emoticons/default/smile.gif)



Go to the top of the page
+Quote Post
aeaeae
post
Post #8





Grupa: Zarejestrowani
Postów: 117
Pomógł: 23
Dołączył: 5.03.2011

Ostrzeżenie: (0%)
-----


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ć?
Go to the top of the page
+Quote Post
Fifi209
post
Post #9





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
PeterBass
post
Post #10





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 7.03.2011

Ostrzeżenie: (0%)
-----


Możesz też spróbować instrukcji sleep. (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
kisiel18
post
Post #11





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.06.2011

Ostrzeżenie: (0%)
-----


PeterBass - WLASNIE O TO CHODZILO - NIE ZNALEM TEGO ALE TO POMOGLO (IMG:style_emoticons/default/smile.gif) DZIEKI WIELKIE (IMG:style_emoticons/default/exclamation.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 16:00