![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 29.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam taki problem gdyż nie wiem jak zrobić/dopisać do mojego kodu czegoś co spowoduje że mój rekord będzie w bazie tylko 2godziny a później sam się usunie. mysql_query("INSERT INTO moja_tabelka (punkty) VALUES ('$_POST[NowyPunkt]')")or die(mysql_error()); Teraz po wprowadzeniu punktu ze zmiennej i dodaniu do bazy powinien się usunąć ten punkt po 2h. Co mam zrobić żeby się usunuwały wpisy po 2h (same)? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 165 Pomógł: 9 Dołączył: 9.04.2002 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
Musisz napisać skrypt np. w php i na serwerze jest możliwość ustawienia aplikacji cron (szukaj na forum) która będzie co 2h odpalała Twój skrypt.
Ja mam konto na home.pl i tam mam do dyspozycji cron. Łukasz -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 29.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ja myślałem że przy definiowaniu dodawania wpisu można dodać opcje która zadeklaruje usunięcie/wygaśnięcie rekordu po danym czasie np. 2h. Da się tak ?
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 21.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
Ja myślałem że przy definiowaniu dodawania wpisu można dodać opcje która zadeklaruje usunięcie/wygaśnięcie rekordu po danym czasie np. 2h. Da się tak ? z tego co wiem, nie ma takiej możliwości w MySQLu... ostatecznie jeśli nie masz możliwości użycia cronu, można to obejść innym sposobem, ale trochę bardziej kłopotliwym i bardziej obciążającym serwer... przy wpisie, który chcesz usuwać po danym czasie musiałbyś dodać pole z informacją kiedy został zapisany, a później przy każdym kolejnym dodawaniu takiego pola (np. przez innego użytkownika wchodzącego na stronę) sprawdzać czy są jakieś wpisy z przekroczonym czasem i jeśli tak, to je usuwać... nie rozwiązuje to problemu całkowicie, bo wpisy nie będą usuwane dokładnie co 2 godziny, ale i tak nie zostaną użyte po tym czasie |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 856 Pomógł: 19 Dołączył: 30.08.2005 Skąd: 100lica Ostrzeżenie: (0%) ![]() ![]() |
Ale przecież może dodać pole datetime i potem przy kazdym wywolaniu usuwać rekordy, których datetime jest odpowiednio mniejszy (-2h) i już.
W sumie nie widzę potrzeby plątania w to crona jeżeli dane pobierane są z www. -------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Nieautoryzowani Postów: 92 Pomógł: 15 Dołączył: 21.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
nie musisz nawet usuwac przy kazdej probie odczytania. po prostu dodaj pole datetime i w select'cie dodaj warunek zeby zwral tylko nieprzestarzale pola. a usuwac przestarzale mozesz raz dziennie albo i rzadziej
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 29.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
A napisał by mi ktoś jak mam to zrobić? bo z manuala nie kapuje zabardzo :/
żeby tylko zostawały pozdrowienia z ostatniej godziny a reszta się usuwała. |
|
|
![]()
Post
#8
|
|
Grupa: Nieautoryzowani Postów: 92 Pomógł: 15 Dołączył: 21.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
no to musisz dodac do tabeli kolumne np data_wstawienia i wstawiajac jakis wiersz robic to tak
nastepnie pobierajac dane niejwiecej w ten sposob zawsze zapisujac ten warunek z czasem
zwroci ci tylko wiersze ktore sa nie starsze niz 2 godziny a raz dziennie mozesz wywolac funkcie (albo i rzadziej) ktora usunie przeterminowane wiersze.
Ten post edytował heaven 17.12.2006, 18:57:14 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 29.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
Wstawiłem taki kod. I mam problem taki że czyści mi wszystkoooo, nawet to co wstawiłem przed 5 minutami, a musi usuwać wszystko co jest starsze niż 2 godziny. Tabela z czasem (forma typu 18:15:03 G:i:s): godzina Tabela z datą (gorma typu 2006-12-18): data Jak mam to dopicować żeby poprawnie działało? Ten post edytował wpatrykw 18.12.2006, 19:50:22 |
|
|
![]()
Post
#10
|
|
Grupa: Nieautoryzowani Postów: 92 Pomógł: 15 Dołączył: 21.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
nie rob 2 tabel tylko jedna DATETIME (tam jest i czas i data) wtedy zadziala
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 29.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
A napisz mi jeszcze czy to ma być zwykła VARCHAR i jaka strukture ma mieć wpis jak on ma wyglądać.
czy ma on mieć forme 2006-12-18 21:19:03 czy jakąś inną. np czy mają być pauzy czy mają być dwukropki czy odstępy czy jak. Ten post edytował wpatrykw 18.12.2006, 21:34:03 |
|
|
![]()
Post
#12
|
|
Grupa: Nieautoryzowani Postów: 92 Pomógł: 15 Dołączył: 21.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 29.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#14
|
|
Grupa: Nieautoryzowani Postów: 92 Pomógł: 15 Dołączył: 21.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
jelsli nie jest ci potrzebne pole data i godzina to usun i zapisz cos takiego
a jesli data i czas tez ci sa potrzebne to poprostu dodaj jeszcze jedna kolumne o tak
a pozatym czemu date i godzine trzymasz w varchar'ach? od tego sa DATE, TIME i DATETIME |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 04:52 |