[ define @ 03.07.2005. 14:03 ] @
Interesuje me kako da se neki komentar izbrise sam posle nekoliko dana?

Da pojasnim...
Dodjete na sajt i popunite neka polja, i na kraju kliknete na potvrdu.

Sve se to unese u Mysql bazu, ali sa mogucnoscu da se automatski izbrise nakon odredjenog vremenskog intervala. (npr 1 dan)

Kontao sam da bi to trebalo da bude na taj nacin sto ce se pri unosu komentara uneti i tacan datum kada je uneo, a da posle treba da se uporedjuje sa vremenom koje treba da prodje.... ili sta vec

Molim za pomoc ili ako ima neka scripta iz koje mogu da vidim kako to izgleda?
[ flylord @ 03.07.2005. 14:26 ] @
Za ovo moras da koristis CRON/Task Scheduler, tj neki program koji automatski startuje tu tvoju skirptu na neko vreme.

I dobro si skontao kako da napravis skriptu koja ce da brise
[ define @ 03.07.2005. 14:30 ] @
kako se koristi cron?
i gde da ga nadjem, da li je to sastavni deo php-a ili sta vec?

[Ovu poruku je menjao define dana 03.07.2005. u 15:41 GMT+1]
[ flylord @ 03.07.2005. 14:38 ] @
cron postoji samo pod linuxom. Na windowsu, mislim da imas Task Scheduler ili tako nesto. I nije deo php-a nego su obe aplikacije, sastavni deo OS-a. I obe postoje po defaultu. A za koriscenje, pitaj svog hostera kako da namestis cron na njihovom serveru
[ define @ 03.07.2005. 14:42 ] @
Vidim da u cpanelu imam opciju cron job... ako je to to znaci treba preko njega da pozovem scriptu za brisanje. Mislim da je tako

Ako je tako sve ostalo sto me interesuje je kako da uporedjujem datume, recimo da postoji tabela

create table bookmark (
komentar text,
time int
);

znaci pri unosu komentara unosi se i vreme unosa. Ako izaberem da cron pokrece scriptu za brisanje komentara koji su stariji od jednog dana, kako da podesim u scripti da ona zna da je razlika izmedju sadasnjeg datuma i datuma u bazi vise od jednog dana?
[ flylord @ 03.07.2005. 14:47 ] @
vreme koje unosis u bazu, izvuci iz time() F-je. (procitaj help za nju: http://php.net/time)
i to ti je broj sekundi od 01.01.1970-e.
Onda u skripti koja brise, ponovo pozoves tu F-ju da uzmes trenutno vreme. I ako je razlika izmedju trenutnog vremena i vremena u bazi, veca od 24 sata (24*60*60 sekunid) onda brises
[ define @ 03.07.2005. 14:54 ] @
Ima li negde primera da se nabih sada lomio, samo da vidim kako to izgleda?
[ flylord @ 03.07.2005. 15:10 ] @
e ne znam, a mene mnogo mrzi sada da to pisem, jer se i sam mucim sa nekim glupostima Ajd pokusaj sam da nesto napravis, pa cu ti ispravim sve sto pogresis. Nije strasno ako nesto pogresis i ne znas
[ define @ 03.07.2005. 16:11 ] @
Moze li ovako

$trenutno = Time();
$prije = time() - (24 * 60 * 60);
echo 'Prije'.date('Y-m-d',$prije);
echo '<br>Trenutno'.date('Y-m-d',$trenutno);
echo '<br>Razlika je ';
$razlika=$trenutno-$prije;
echo date('Y-m-d',$razlika);
echo $razlika;
echo '<br>Sta je vece';
if ($razlika>='86400')
{
echo 'Brisi komentar';
}
else
echo 'Jos radi';

znaci ako je razlika veca od jednog dana onda da brise, ako nije onda nista
[ dukenukem @ 07.07.2005. 13:36 ] @
otprilike tako.
s tim sto ne startujes nikakve cron-ove ili slicne andrmolje, nego npr. pre iscitavanja tih istih komentara (radi prikaza npr.) pustis jedan:

delete from table_name where date_entered < onaj_datum_sto_si_malopre_izracunao
[ The Sekula @ 12.07.2005. 08:53 ] @
Verovatno nije bitno, ali da napomenem, da ovo sa brojem sekundi za jedan dan (24*60*60) nije 100% ispravno resenje, jer jedan dan godisnje ima 25 sati a jedan 23 sata.

Mislim da je najjednostavnije dobiti tacan timestamp od pre jednog dana koristiti

strtotime("-1 day")
[ NikolaVeber @ 12.07.2005. 09:09 ] @
Ili, kad vec radis u mysql-u, uradis nesto poput:

DELETE FROM tabela WHERE vreme < DATE_SUB(NOW(), INTERVAL x DAYS);

samo pogledaj mysql manual za tacnu sintaksu.
[ Z3d_Kv @ 18.07.2005. 14:15 ] @
HM......
Pa Cim se ne razumes u MySql bazu nije to za tebe..