Jump to content
php.lv forumi

Dzēš pēc noteikta laika


mypoint

Recommended Posts

Sveiki! Cerams ka ierakstiju pareizajā kategorijā.

 

Kā lai uztaisa tā, ka no DB izdzēš ierakstu automātiski pēc 3 dienām.

Ja iesniegts 7 novembrī divos dienā, tad 10 novembrī divos dienā ieraksts tiks dzēsts!

Pasaku uzreiz, ka nēsu nekāds PHP guru, bet šo to jau saprotu!

Link to comment
Share on other sites

Patiesību sakot tas, ko Tev vajag, ir ka ieraksti tiek ņemti vērā (attēloti, skaitīti, whatever) tikai tad, ja to vecums nepārsniedz 3 dienas. Tāpēc savā SQL teikumā kur Tu tos atlasi, skaiti vai ko nu dari, pieliec nosacījumu, ka tekošais datumlaiks - ieraksta pievienošanas datumlaiks <= 3 dienas. Jo tādu scenāriju, ka tikko kā izpildās 3 dienas, tā kaut ko dzēš, tas nav reāli, it sevišķi, ja ierakstu skaits ir nopietns. Tad papildus vari pievienot kaut kādu procesu reizi dienā, kas tos ierakstus, kas vecāki par 3 dienām izdzēš, bet jebkurā gadījumā, nosacījums reālajā SQL teikumā (-mos) ir nepieciešams.

 

Gints Plivna

http://datubazes.wordpress.com

Link to comment
Share on other sites

DB tai tabulai pievieno lauku, teiksim "livetime"

Kad kad tiek pievienots ieraksts tad tajā livetime laukā liec iekšā time()+259200 (3 dienas)

Un pēctam kautvai index lapā ieliec kveriju

DELETE FROM tā tabula WHERE livetime<=time()

 

nu apmēram tā.

Edited by nikidijs
Link to comment
Share on other sites

Yeahh nu mans stāts par to, ka ir process, kas reiz dienā kaut ko dzēš, jau to arī tā kā nozīmēja. Bet, 100 ieraksti, piedod, bet es labu brīdi smējos to ieraugot. OK, nopietni runājot, 100 ierakstu ir ļoti maz, protams, jāatceras, ka datubāzēs eksistē tāda lieta kā indeksi.

 

P.S.

Nu kā jau te teica, tad protams, šādu dzēšanas procesu var ielikt arī kādā citā lapā, taču tādā puslīdz nopietnā sistēmā, tas nav labs stils.

 

Gints Plivna

http://datubazes.wordpress.com

Edited by Gints Plivna
Link to comment
Share on other sites

Man jautājumiņš. Nav kāda iespēja (laikam ar cron), ka es to skriptu, kas izdzēš vecos ierakstus ieliektu nevis index.php, bet gan citā failā, kurš pats izpildās, teiksim, reizi 24h?

Link to comment
Share on other sites

24h:

CREATE EVENT eventa_nosaukums ON SCHEDULE EVERY 1 DAY DO

DELETE FROM tabula WHERE nosacījums;

 

Tas events gan tāds noslēpts, ja speciāli neskatās tad nemaz nezin ka tāds strādā un dzenā kverijus.

Vēl ir variants ka tā pati lapa kura liek datus iekšā pie viena izdzēš vecos. Tāds man nez kapēc patīk vairāk.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...