mypoint Posted November 6, 2010 Report Share Posted November 6, 2010 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! Quote Link to comment Share on other sites More sharing options...
Rincewind Posted November 6, 2010 Report Share Posted November 6, 2010 PHP kods izpildās kad atver lapu, tev vajadzīgs kaut kāds events. Vai nu caur cron vai db CREATE EVENT, bet lai būtu tā precīzi 3 dienas būs katram atsevišķi events jātaisa, nebūs labi. Quote Link to comment Share on other sites More sharing options...
Gints Plivna Posted November 6, 2010 Report Share Posted November 6, 2010 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 Quote Link to comment Share on other sites More sharing options...
mypoint Posted November 6, 2010 Author Report Share Posted November 6, 2010 Varbūt tad var izveidot skriptu kuru palaižot pārbauda, vai ir kāds ieraksts vecāks par trim dienām, vai nav. Vecākos ierakstus izdzēš! Jo Db var gadīties ka dienā tiks pievienoti kādi 100 ieraksti! Quote Link to comment Share on other sites More sharing options...
nikidijs Posted November 6, 2010 Report Share Posted November 6, 2010 (edited) 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 November 6, 2010 by nikidijs Quote Link to comment Share on other sites More sharing options...
Gints Plivna Posted November 6, 2010 Report Share Posted November 6, 2010 (edited) 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 November 6, 2010 by Gints Plivna Quote Link to comment Share on other sites More sharing options...
daGrevis Posted November 7, 2010 Report Share Posted November 7, 2010 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? Quote Link to comment Share on other sites More sharing options...
mypoint Posted November 7, 2010 Author Report Share Posted November 7, 2010 Es arī gribētu, lai kaut kas tāds notiktos. Ja nu kāds grib, lai izdzēš ierastus pēc noteikta laika (ne automātiski protams), tad lūk skripts: KODS Quote Link to comment Share on other sites More sharing options...
Rincewind Posted November 7, 2010 Report Share Posted November 7, 2010 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. Quote Link to comment Share on other sites More sharing options...
daGrevis Posted November 7, 2010 Report Share Posted November 7, 2010 Bet ar cron? Vai kaut kā tikai ar PHP? Quote Link to comment Share on other sites More sharing options...
Rincewind Posted November 7, 2010 Report Share Posted November 7, 2010 Kā es saprotu cron palaiž Lynx kurš atver lapu un aizverās. Guglī droši vien ir vesela kaudze piemēru "php cron". Quote Link to comment Share on other sites More sharing options...
mypoint Posted November 7, 2010 Author Report Share Posted November 7, 2010 Par cron vispār neko nezinu, bet paguglēju un uzgāju šo linku: LINKS Nezinu vai strādā vai, ne bet jāpamēģina. Quote Link to comment Share on other sites More sharing options...
cilveks Posted November 7, 2010 Report Share Posted November 7, 2010 Var arī iešedulēt vienkārši SQL kveriju, piem. psql dbname -c "DELETE FROM tabula WHERE kautkas" Quote Link to comment Share on other sites More sharing options...
daGrevis Posted November 7, 2010 Report Share Posted November 7, 2010 Neatradu iespēju to panākt uz Windows, kur nu vēl, ja Man ir XAMPP. xD Quote Link to comment Share on other sites More sharing options...
spainis Posted November 7, 2010 Report Share Posted November 7, 2010 Task Scheduler Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.