Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Automatsko brisanje zapisa nakon određenog vremena

[es] :: PHP :: Automatsko brisanje zapisa nakon određenog vremena

Strane: 1 2

[ Pregleda: 7559 | Odgovora: 26 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

goran33
Goran Milic
Beograd

Član broj: 6040
Poruke: 46
*.bitsyu.net

ICQ: 170738591


Profil

icon Automatsko brisanje zapisa nakon određenog vremena18.01.2003. u 23:29 - pre 257 meseci
Na koji sve način mogu da se izbrišu polja u nekoj tabeli (mysql) koja su recimo starija od 2 dana?
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.rcub.bg.ac.yu

Sajt: localhost


+5 Profil

icon Re: Automatsko brisanje zapisa nakon određenog vremena19.01.2003. u 02:03 - pre 257 meseci
zavisi kako si (i da li si) pamtio vreme unosa rekorda u bazu.

elem, najlaksi, (i od vecine php-ovaca najomiljeniji) nacin za cuvanje vremena u mysql-u je preko obicnog int polja, i preko time() php funkcije.

znaci, ako si pri unosenju unosio sa

Code:

$vreme=time();
mysql_query("INSERT INTO tabela SET kolona='$kolona', vreme='$vreme'");


onda i brises tako sto od trenutnog vremena oduzmesh 60*60*24*2 sekundi (dva dana).

Code:

$vreme=time()-2*24*60*60;
mysql_query("DELETE tabela WHERE vreme<'$vreme'");



e, ako koristish mysql timestamp, onda je sintaxa drugacija, ali to retko koristim, pa ne znam napamet...

Go! X: Izmenjeno imenovanje varijabli, $time != $vreme u prvom upitu ;)

[Ovu poruku je menjao Go! X dana 19.01.2003. u 11:49 GMT]
 
Odgovor na temu

CONFIQ
♫♪♥♪♫

Član broj: 4218
Poruke: 1994
*.red.bezeqint.net

ICQ: 82327428


+10 Profil

icon Re: Automatsko brisanje zapisa nakon određenog vremena19.01.2003. u 02:11 - pre 257 meseci
Mene zanima kako je moguće staviti da se pokrene skripta nakon određenog vremena?
 
Kolko ja poznajem PHP,nepostoji funcija koja to radi,znači samo sa nekim drugim jezikom je moguće uraditi tako nešto?
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.rcub.bg.ac.yu

Sajt: localhost


+5 Profil

icon Re: Automatsko brisanje zapisa nakon određenog vremena19.01.2003. u 02:34 - pre 257 meseci
stripi, ovo je totalno nevezano za temu, ali ajde oprosticu ti (josh) ovaj put ;)

elem, da, to ne moze iz php-a (niti moze iz bilo kog jezika, ako skripta / program ne radi stalno..)

to se radi najcesce preko cron-a ili crontab komande u linuxu/unixu. ako imash gde, kucaj crontab --h ili man cron...

ako vec nemash linux shell, postoji jedno slicno resenje.

imash drugara koji ima linux/unix makinu koja je 24/7 na netu, i trazis od njega da stavi u svoj cron komandu tipa wget http://www.tvojsajt.com/putanja/do/skripte.php (da se izvrsava na svakih 15 min recimo)

tvoja skripta treba da proveri koje je vreme, da li treba da se izvrsi (sta god da treba da radi) i ako treba, odradi to. vazno je da ne ispises nista (ili bar ne mnogo) da ne bi pravio veliki protok drugaru...


treca solucija je ako imash relativno posecen sajt. (relativno znaci recimo 500+ pageView-a dnevno).

onda stavish tabelu u kojoj ce da cuvash "taskove", sa vremenima kada treba da se izvrse, i poljem da li su vec izvrseni. pri svakom pageHit-u, proverish da li je neki task na redu da se izvrsi, i ako jeste, izvrsish ga i setujesh u bazi da je izvrsen...

 
Odgovor na temu

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

Član broj: 635
Poruke: 1374
*.1.14.vie.surfer.at

Sajt: www.baze-podataka.net


+2 Profil

icon Re: Automatsko brisanje zapisa nakon određenog vremena19.01.2003. u 11:32 - pre 257 meseci
Citat:
zombie / DDG:
stripi, ovo je totalno nevezano za temu, ali ajde oprosticu ti (josh) ovaj put ;)

Hmmm zar ima jos neki stripi ovdje ili si mislio na mene podsvjesno? :)
Btw. dobro si odgovorio gore iznad.
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

CONFIQ
♫♪♥♪♫

Član broj: 4218
Poruke: 1994
*.red.bezeqint.net

ICQ: 82327428


+10 Profil

icon Re: Automatsko brisanje zapisa nakon određenog vremena19.01.2003. u 15:41 - pre 257 meseci
Da... Tako i nešto sam i prepostavio... Hvala :Đ
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.rcub.bg.ac.yu

Sajt: localhost


+5 Profil

icon Re: Automatsko brisanje zapisa nakon određenog vremena19.01.2003. u 18:13 - pre 257 meseci
Citat:
StRiPy:
Citat:
zombie / DDG:
stripi, ovo je totalno nevezano za temu, ali ajde oprosticu ti (josh) ovaj put ;)

Hmmm zar ima jos neki stripi ovdje ili si mislio na mene podsvjesno? :)
Btw. dobro si odgovorio gore iznad.


:D lol

sorry. mora da sam citao neki tvoj post prethodno...


znaci, CONFOQ: ovo je totalno nevezano za temu, ali ajde oprosticu ti (josh) ovaj put ;)


josh jednom, :D, lol
 
Odgovor na temu

goran33
Goran Milic
Beograd

Član broj: 6040
Poruke: 46
*.bitsyu.net

ICQ: 170738591


Profil

icon Re: Automatsko brisanje zapisa nakon određenog vremena19.01.2003. u 18:33 - pre 257 meseci
Ljudi hvala...
 
Odgovor na temu

Jbyn4e

Član broj: 422
Poruke: 6049
217.26.67.*



+257 Profil

icon Re: Automatsko brisanje zapisa nakon određenog vremena20.01.2003. u 13:43 - pre 257 meseci
Citat:
CONFIQ:
Mene zanima kako je moguće staviti da se pokrene skripta nakon određenog vremena?
Kolko ja poznajem PHP,nepostoji funcija koja to radi,znači samo sa nekim drugim jezikom je moguće uraditi tako nešto?

Posto su ti vec odgovorili za *nix sisteme, ako radis pod win2000 (odakle si pisao poruku), onda idi u dos prompt i pogledaj komandu "at" (bez navodnika). Radi nesto slicno kao cron ;) (at /? za pomoc)

E sad, ako nece "direktno" da ti pozove php fajl kako treba, a ti lepo to stavis u .bat fajl u kome imas liniju (ako nemas php u path-u):
\putanja_do_php\php -q skript.php
ili samo
php -q skript.php
i pomocu at-a odredis kad da se pokrece...
za kompletne opcije startovanja php-a kucaj php -h

Kad sve ostalo zakaže, pročitaj uputstvo...
 
Odgovor na temu

bugsu
Vojvodina - Subotica

Član broj: 40006
Poruke: 381
93.86.73.*



+3 Profil

icon Re: Automatsko brisanje zapisa nakon određenog vremena24.04.2009. u 15:02 - pre 181 meseci
izvinjavam se sto podizem temu iz mrtvih ali imam problem a treba mi ista stvar....

u mysql imam polje koje je type:TIME

scripta treba da brise sve upise starije od X sati (ajd neka bude 1H)

Code:

$server_time = date ('H:i:s');
$sql = "SELECT polje FROM tabela";
$rs = $conn->execute($sql);
$timelimit   = $rs->fields['polje'];    
$time = $server_time - $timelimit*60*60;
$sql = "DELETE vvl_log WHERE exp_time <'" .mysql_real_escape_string($time). "'";
$conn->execute($sql);


uradi on query,ime table sve je to ispravno kad uradim echo dobijem vrednosti iz baze...e sad ja mislim da sam pogresio oko $server_time tj da ne mogu od njega oduzeti 3600sec..

Jel na dobro ciljam? i kako da resim to ...

u bazi mi potrebno samo vreme....datum mi nije potreban...jer kazem brisace se svakog sata...



Say NO to pop culture!!!
Crno je uvek u modi....
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-2.sezampro.yu.



+33 Profil

icon Re: Automatsko brisanje zapisa nakon određenog vremena24.04.2009. u 15:13 - pre 181 meseci
Za $server_time probaj ovako:
Code:

$server_time = time();
 
Odgovor na temu

bugsu
Vojvodina - Subotica

Član broj: 40006
Poruke: 381
93.86.73.*



+3 Profil

icon Re: Automatsko brisanje zapisa nakon određenog vremena24.04.2009. u 15:42 - pre 181 meseci
hm...ne radi ovo ...
sve sam zivo probao....



Say NO to pop culture!!!
Crno je uvek u modi....
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-2.sezampro.yu.



+33 Profil

icon Re: Automatsko brisanje zapisa nakon određenog vremena24.04.2009. u 18:31 - pre 181 meseci
Probaj onda i da umesto $timelimit*60*60 napišeš strtotime($timelimit).
 
Odgovor na temu

bugsu
Vojvodina - Subotica

Član broj: 40006
Poruke: 381
93.86.73.*



+3 Profil

icon Re: Automatsko brisanje zapisa nakon određenog vremena24.04.2009. u 19:23 - pre 181 meseci
nikola hvala na trudi ali ni to ne radi :)

Say NO to pop culture!!!
Crno je uvek u modi....
 
Odgovor na temu

Tudfa
Jovicevic Vladimir

Član broj: 152699
Poruke: 384
*.dynamic.sbb.rs.



+3 Profil

icon Re: Automatsko brisanje zapisa nakon određenog vremena24.04.2009. u 20:44 - pre 181 meseci
Ako si pratio uputstva, a i dalje ti ne radi, verovatno upit gde brišeš zapis nije dobar.

Ovo kažem jer pretpostavljam da ti je polje exp_time tipa TIME a ti pokušavaš da ga uporediš sa integerom.

Uradi jedan echo upita pa ga postuj ovde, verovatno pokušavaš da porediš nešto tipa WHERE '03:26:32' < 1240579592 ili tako nešto.
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-2.sezampro.yu.



+33 Profil

icon Re: Automatsko brisanje zapisa nakon određenog vremena24.04.2009. u 21:07 - pre 181 meseci
Ajde probaj onda da pored ova dva koraka koja sam ti predložio uradiš i ovo:
Code:

$server_time = time();
//...
$time = $server_time - strtotime($timelimit);
$time = date('H:i:s', $time);
//...

Tu su ti sad sve tri izmene. Taj prvi argument f-ji date bi trebao da bude onaj format u kome čuvaš to vreme u bazi...

A i sad mi pade napamet, ako je tebi cilj da brišeš neke zapise starije od određenog vremena, ona to sve može da se odradi u tom jednom upitu, npr.:
Code:

DELETE FROM vvl_log WHERE exp_time < CURTIME() - 100000

To bi trebalo da obriše sve zapise starije od 10 sati. Mora da se piše kao 100000, pošto je f-ja CURTIME(), kada se koristi u proračunima, u formatu HHMMSS.uuuuuu, što znači ako je sada npr. 22:00:00, CURTIME() - 100000 će dati 120000.000000.
 
Odgovor na temu

bugsu
Vojvodina - Subotica

Član broj: 40006
Poruke: 381
93.86.73.*



+3 Profil

icon Re: Automatsko brisanje zapisa nakon određenog vremena24.04.2009. u 22:00 - pre 181 meseci
Citat:
Tudfa:Ovo kažem jer pretpostavljam da ti je polje exp_time tipa TIME a ti pokušavaš da ga uporediš sa integerom.

nema sta da pretpostavljas ja sam to napomenuo u postu ;)

Citat:
Uradi jedan echo upita pa ga postuj ovde, verovatno pokušavaš da porediš nešto tipa WHERE '03:26:32' < 1240579592 ili tako nešto.


tacno
DELETE vvl_log WHERE exp_time <'1240606308'


Citat:
Nikola Poša:
Code:

$time = date('H:i:s', $time);


mislio si $timelimit ?

Citat:

Code:

DELETE FROM vvl_log WHERE exp_time < CURTIME() - 100000


ok je to al ne mogu da koristim....$timelimit ce mi biti promenljiv tj iz AdminCP-a ce se moci menjati vremenski period (polje za upisivanje i user stavi 1-2-3-XX sati )
Say NO to pop culture!!!
Crno je uvek u modi....
 
Odgovor na temu

Tudfa
Jovicevic Vladimir

Član broj: 152699
Poruke: 384
*.dynamic.sbb.rs.



+3 Profil

icon Re: Automatsko brisanje zapisa nakon određenog vremena24.04.2009. u 22:35 - pre 181 meseci
Citat:
bugsu:nema sta da pretpostavljas ja sam to napomenuo u postu ;)

Pa ako je tako onda moraš da uporedjuješ vreme u pravom formatu.

To ćeš postići tako što ćeš promenljivu $time koju koristiš u DELETE upitu dovesti u isti format u kojem su podaci sačuvani u bazi.

Samo iskoristiš ovo što ti je već predloženo:

[quote]Nikola Poša:
Code:
//...
$time = date('H:i:s', $time);
//...

 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-1.sezampro.yu.



+33 Profil

icon Re: Automatsko brisanje zapisa nakon određenog vremena25.04.2009. u 09:33 - pre 181 meseci
Citat:
bugsu: mislio si $timelimit ?

Ne, mislio sam baš na $time, a objasnio ti je Vlaidmir zašto...

Citat:
bugsu: ok je to al ne mogu da koristim....$timelimit ce mi biti promenljiv tj iz AdminCP-a ce se moci menjati vremenski period (polje za upisivanje i user stavi 1-2-3-XX sati )

Pa dobro, nisam ja mislio da onih 100000 bude fiksno, ti to što izabereš u admin panel-u, možeš da prebaciš u ovaj format "čitljiv" za CURDATE(). Npr. ako izabere 1, ti ćeš to prebaciti u 010000, 2 => 020000, itd.

 
Odgovor na temu

bugsu
Vojvodina - Subotica

Član broj: 40006
Poruke: 381
79.101.214.*



+3 Profil

icon Re: Automatsko brisanje zapisa nakon određenog vremena25.04.2009. u 18:24 - pre 181 meseci
sad vec pocinjem da razmisljam jer sam ja stvarno glup or what....


Code:

$server_time = time();
$time = time() - strtotime($timelimit*60*60);
$time = date('H:i:s', $time);
$sql = "DELETE FROM vvl_log WHERE exp_time <$time";


echo
Code:
DELETE FROM vvl_log WHERE exp_time <12:04:00 
server time is  12:04:00

sad dobijem sta mi treba al ne oduzima X od trenutnog vremena.....
Say NO to pop culture!!!
Crno je uvek u modi....
 
Odgovor na temu

[es] :: PHP :: Automatsko brisanje zapisa nakon određenog vremena

Strane: 1 2

[ Pregleda: 7559 | Odgovora: 26 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.