mysqlimde y adında tablo var diyelim. her gün yada 2 günde bir gibi boşaltılmasını istiyorum nasıl yapabilirim arkadaşlar.
dersenizki ücretli kodlanır onada razıyım. şimdiden teşekkürler. php bilgim maalesef oldukça az
İstek: her gün x saatte mysqlimdeki y tablosu boşaltılsın NASIL?
38
●3.001
- 11-02-2009, 14:29:00işin mantığını anlatmak gerekirse;
sayfanın header kısmına
ayın gününü 2 ye böl eğer kalan sıfır ise TRUNCATE `y` komutunu uygula
böylece header kısmı sitenin sabit kısmı olduğundan if döngüsü her sayfa açılışında çalışıp ayın gününü 2ye bölecek kalan 0 ise y tablosunu boşaltıcak kalan 1 ise işlem yapmayacaktır - 11-02-2009, 15:33:21Üyeliği durduruldusunucuya cron tanımlanarak yapilir en iyi. yoksa 2 günde bir kere çalışacağı için bi yerlere gün flag atmanız gerekir.
ama x.php gibi bir sayfaniz olur içinde delete from tablo sql i olur. temizler - 11-02-2009, 15:39:34bence bir mysql tablosu oluştur. bunun üzerinden denetle günleri;
bir tablo oluşturalim adi zamantablo
bu tabloda ID ve zaman sütunlari olsun;
<?php $simdi = time(); //şu an $sonsql = mysql_query("select * from zamantablo order by id desc limit 1") or die (mysql_error()); $son = mysql_result ($sonsql,0,"zaman"); //son işlem zamanini cektik $silinecekzaman = $son + 172800; //son işlem zamanina saniye cinsinden 2 gün ekledik if ($silinecekzaman <= $simdi) { // eger bu deger bugünden küçük veya eşit ise //Tablo boşaltma işlemi $silsql = mysql_query("TRUNCATE TABLE bosaltilacak_tablo") or die (mysql_error()); //tabloya sildigimiz zamani giriyoruz 2 gün sonra tekrar kullanmak için $sqlgir = mysql_query("INSERT INTO zamantablo (zaman) VALUES('$simdi')") or die (mysql_error()); } ?>örnek kod kodlarin ne işe yaradigini yanlarina yazdim. mantik olarak en son silme işleminin zamanini sql e giriyoruz daha sonra sayfa her acildiginda bu kontrolü yapiyoruz. bu kontrol'de son silme işlemine 2 gün(saniye cinsinden) ekliyor ve bu yeni oluşan deger ile bugünkü degeri kiyasliyor eger bu deger küçük veya eşit ise aradan 2 gün geçmiş demektir. silme işlemini yapiyor ve bugünün zamanina db ye kayit ediyor. daha sonra her 2 günde bir bu işlem devam ediyor
NOT : kodu denemedim önce önemsiz bir tablo üzerinde test edebilirsiniz - 11-02-2009, 15:46:42Bu kodu deneyebilirmisin ?
<?php $dbbaglan= mysql_connect("localhost","db_kullanici_adi","db_sifre") or die ("Baglanti Kurulamadi."); mysql_select_db("y",$dbbaglan); $sorgu = mysql_query(" TRUNCATE TABLE `y`"); $cikti=mysql_query($sorgu, $dbbaglan); echo "Tablo boşaltıldı."; ?> - 11-02-2009, 15:48:30Üyeliği durdurulduverdiginiz kod zaten tabloyu boşaltır ama 2 günde bir olduğuna göre lacremel in yaklaşımı uygun. ama en sagliklisi cron tanimlamak. boş yere koda fazladan 1 sorgu eklenmemiş olur. ve peryodik düzenli calisirOnurss adlı üyeden alıntı: mesajı görüntüle
- 11-02-2009, 16:17:11Üyeliği durdurulduherkese öncelikle teşekkürler
Onurss'un dediği gibi bişi arıyorum sayılır. yani bir php kodları istediğim tabloyu boşaltsın cpanelden de o php dosyasına cron ekleyim (daha önce hiç yapmadım ama sanırım olur)
kısaca Onurss seninkini deneyip sonucu yazıcam teşekkürler. - 11-02-2009, 17:22:39Üyeliği durdurulduWarning: You need to have a good knowledge of Linux commands before you can use cron jobs effectively. Check your script with your hosting administrator before adding a cron job.
yazısı yüzünden ekleyemiyorum cron sayfasında yazıyor.
yoksa Onurss'un php kodu çalıştı.
crona ekleme kaldı