• 07-03-2014, 14:36:08
    #1
    Arkadaşlar merhaba, db ye kayıt edilen verileri eklenme tarihinden 30 gün sonra silinmesini istiyorum.

    Bu işlemi nasıl yapabilirim?
  • 07-03-2014, 14:38:36
    #2
    Tarihleri kontrol edip 30 gün geçenleri silen bir dosya oluşturup bu dosyayı cronjob aracılığıyla günde 1 kez çalıştırabilirsiniz.
  • 07-03-2014, 14:39:32
    #3
    Üyeliği durduruldu
    @armagedon66; merhaba hocam şu konuda basit bi kodlama ile anlatılmış


    function tarihfarki($tarih_gir){ 
    $yeni_tarih=explode("-",$tarih_gir); 
    $son_gun=$yeni_tarih[2]; 
    $son_ay=$yeni_tarih[1]; 
    $son_yil=$yeni_tarih[0]; 
    
    $ilk_gun=date("d"); 
    $ilk_ay=date("m"); 
    $ilk_yil=date("Y"); 
    
    $ek[1]=31; 
    $ek[2]=28; 
    $ek[3]=31; 
    $ek[4]=30; 
    $ek[5]=31; 
    $ek[6]=30; 
    $ek[7]=31; 
    $ek[8]=31; 
    $ek[9]=30; 
    $ek[10]=31; 
    $ek[11]=30; 
    $ek[12]=31; 
    
    
    $yil_fark=($son_yil-$ilk_yil) * 365 ; 
    for($i=1;$i<$son_ay;$i++){ 
    
    $son_ay_toplam=$son_ay_toplam+$ek[$i]; 
    } 
    
    $toplam_son_gun=$son_ay_toplam+$son_gun; 
    
    for($m=1;$m<$ilk_ay;$m++){ 
    $ilk_ay_toplam=$ilk_ay_toplam+$ek[$m]; 
    } 
    
    $toplam_ilk_gun=$ilk_ay_toplam+$ilk_gun; 
    $sonuc=$toplam_son_gun-$toplam_ilk_gun+$yil_fark; 
    return $sonuc; 
    
    } 
    
    
    $sql = mysql_query("SELECT * FROM urunler"); 
    while($cek = mysql_fetch_assoc($sql)){ 
    
    
    
    
    
    if($cek['avitrinsuresi'] == "1" or $cek['avitrinsuresi'] == "2" or $cek['avitrinsuresi'] == "3") { 
    
    if($cek['avitrinsuresi'] == "1"){ $bitistarihi = date("Y-m-d" ,strtotime("+15 days",strtotime($cek['kayittarihi']))); } 
    if($cek['avitrinsuresi'] == "2"){ $bitistarihi = date("Y-m-d" ,strtotime("+30 days",strtotime($cek['kayittarihi']))); } 
    if($cek['avitrinsuresi'] == "3"){ $bitistarihi = date("Y-m-d" ,strtotime("+60 days",strtotime($cek['kayittarihi']))); } 
    
    
    $fark = tarihfarki($bitistarihi); 
    
    if($fark <= "0"){ 
    
    $guncelle = mysql_query("UPDATE urunler SET avitrinsuresi='0' where id='".$cek['id']."'"); 
    
    
    
    } else { 
    
    $guncelle = mysql_query("UPDATE urunler SET yayinsuresi='2' where id='".$cek['id']."'"); 
    
    
    } }
  • 07-03-2014, 14:47:10
    #4
    Üyeliği durduruldu
    Php kullanmayın, direkt mysql events ile halledebilirsiniz.

    https://dev.mysql.com/doc/refman/5.1/en/events.html

    Örnek 1-2 event :
    http://stackoverflow.com/questions/3...-time-everyday