Topic: Panaikinti parametrą po x dienų...

Sveiki, kaip sukurti mysql eilutė, jog ji būtų vėl pakeista po 7dienų nuo jos update :/

Sukurtas jis būna prieš tai, bet po šio įvykio noriu jog vėl pasikeistų vienas parametras...

$paring="UPDATE users SET sth=1 ideta=NOW() baigiasi=** čIA NORIU .ideta. + 7 dienos ** WHERE users.id='".$message."')";

ir po tų 7 dienų, sth parametras pasikeistų iš 1 į 0...

Padėkit prašau :))

Beje čia dar kaiką radau: baigiasi=DATE_ADD(NOW(), INTERVAL 7 DAY), čia turėtų įdeti datą ir prideti prie jos 7 dienas kiek suprantu, o kaip patikrinti kada ta data bus ir tą dieną tą parametrą pakeisti..

Re: Panaikinti parametrą po x dienų...

Tai kiekvieną diena,valandą ar minutę paleisk php skriptą per cronjob'ą kuris prasuktų reikiamas užklausas.

MongoDB Certified Developer
MongoDB Certified DBA
Zend Certified Engineer

Re: Panaikinti parametrą po x dienų...

o kitaip neįmanoma ? ir galbūt galėtumete pasakyti / paaiškinti kaip tai padaryti ...

Re: Panaikinti parametrą po x dienų...

Nuo 5.1.x versijos MySQL'as turi vidinę "cron" sistemą, ji vadinasi "Events", gali pasidaryti su jais: http://dev.mysql.com/doc/refman/5.1/en/ … event.html

5 (edited by addinol 2011-01-13 18:25:43)

Re: Panaikinti parametrą po x dienų...

Nelabai supratau kaip jį panaudoti...

CREATE EVENT e_totals
ON SCHEDULE AT '2006-02-10 23:59:00' [o kaip padaryti jog kas savaitę o ne pagal datą..]
DO INSERT INTO test.totals VALUES (NOW()) [ Kaip padaryti jog tikrintu ar baigiasi<NOW(); ]
ir jei taip, tada kaip padaryti jog pasikeistų sth į 0... Ir reikia jog visas mysql eilutes pereitų ir patikrintų...
DO UPDATE users SET sth=0.

EDIT: O gal yra lengvesnis būdas tai padaryti su php ?

Re: Panaikinti parametrą po x dienų...

Na du vieninteliai būdai tai per sunkūs, tai ...

MongoDB Certified Developer
MongoDB Certified DBA
Zend Certified Engineer

Re: Panaikinti parametrą po x dienų...

Kalbėjau su žmogum šitą reikalą išmanančiu. Cituoju:

"* php scriptuka pasidariau crojob nukreipiau kad atidarinetu kas 1 diena ir veikdavo. be cron neišeis nu yra budas bet ten tiek to kodo reik dx kad neapsimoka arba daryt su time jai ateis kasnors suveiks ..."

Galbūt padėsit ką nors panašaus pasidaryti ?

Re: Panaikinti parametrą po x dienų...

addinol wrote:

Nelabai supratau kaip jį panaudoti...

CREATE EVENT e_totals
ON SCHEDULE AT '2006-02-10 23:59:00' [o kaip padaryti jog kas savaitę o ne pagal datą..]
DO INSERT INTO test.totals VALUES (NOW()) [ Kaip padaryti jog tikrintu ar baigiasi<NOW(); ]
ir jei taip, tada kaip padaryti jog pasikeistų sth į 0... Ir reikia jog visas mysql eilutes pereitų ir patikrintų...
DO UPDATE users SET sth=0.

Ten, būtent toje nuorodoje yra parašyta, kaip padaryti, kad SQL užklausos būtų vykdomos ir norimais intervalais.

Kiti klausimai yra jau reikalauja patikslinimų. Tai pradžiai reikemduočiau bent jau turėti SQL užklausas, kurios atlieka norimą veiksmą, o paskui galvoti, kaip jį vykdyti norimais intervalais.

addinol wrote:

EDIT: O gal yra lengvesnis būdas tai padaryti su php ?

Abu būdai yra vienodai lengvi, abiem atvejais yra SQL užklausos, kurias reikia įvykdyti nustatytu laiku, tam tikrais intervalais. Pirmu atveju tai atliks MySQL serveris, antru atveju operacinė sistema nustatytais laiko tarpais kvies PHP scriptą, kuris siųs SQL užklausą MySQL serveriui. Elegantiškesnis ir paprastesnis sprendimas yra pirmasis. (-;

Re: Panaikinti parametrą po x dienų...

šiaip klausimas - kaip mysql serveris elgiasi su eventais, stored procedures po perkrovimo, duomenų migravimo į kitą vietą?

T.y. ar reikia pastoviai stebėti ar nustatymai niekur nedingsta, ar visa tai yra saugome information scheme ir tai nebeproblema?

Re: Panaikinti parametrą po x dienų...

Lukas wrote:

šiaip klausimas - kaip mysql serveris elgiasi su eventais, stored procedures po perkrovimo, duomenų migravimo į kitą vietą?

T.y. ar reikia pastoviai stebėti ar nustatymai niekur nedingsta, ar visa tai yra saugome information scheme ir tai nebeproblema?

Taip viskas matosi information_schema ir viskas dumpinasi / importuojasi kaip ir duomenų bazės ar trigeriai ar view'ai.