Belirli tarihte veritabanından veri silmek

Ana sayfa Forumlar PROGRAMLAMA PHP Belirli tarihte veritabanından veri silmek

1 yazı görüntüleniyor (toplam 1)
  • Yazar
    Yazılar
  • #16550
    Ahmet Aksoy
    İzleyici

    Merhaba hocam, bir konuda çok zorlandım ve nasıl yapacağım konusunda hiç bir fikrim yok.

    bir İlan sitesi sahibiyim. burada yapmak istediğim eklenen ilanlanların bitiş süresini belirlemek ve bu süre sonunda otomatik olarak ilanın veritabanındaki belirli alanını güncellemek.

    Yani siteye ilan ekledim ve 1 ay ilan süresi seçtm. admin ilanı onayladı. 1 ay sonra ilan süresi bittiğinde bu ilanın durumunu aktiften pasif’e çekmek stiyorum. Bu işleme cron diyorlar sanırım.

    urunler adı altında veritabanı tablom mevcut. Kullandığım kodlar şu şekilde:

    <?

    if($_POST) {
    if($_POST[‘kontrol’] == 1) {
    $anasayfavitrin = 0;
    $kategorivitrin = 0;
    $kalinbaslik = 0;
    if($_POST[‘anasayfavitrin’] == “1”) {$anasayfavitrin = ‘1’;  echo “Anasayfa Vitrin  7 Gün $resim1 TL</br>”; $tutar=$tutar+$resim1;} else {$anasayfavitrin = ‘0’;}
    if($_POST[‘kategorivitrin’] == “1”) {$kategorivitrin = ‘1’;   echo “Kategori Vitrin  7 Gün $resim2 TL</br>”; $tutar=$tutar+$resim2;}  else {$kategorivitrin = ‘0’;}
    if($_POST[‘kalinbaslik’] == “1”) {$kalinbaslik = ‘1’;         echo “Kalın Başlık 7 Gün $resim3 TL</br>”; $tutar=$tutar+$resim3;}        else {$kalinbaslik = ‘0’;}

    $urunID = $_SESSION[‘urunID’];
    mysql_query(“UPDATE urunler SET anasayfavitrin = ‘$anasayfavitrin’ , kategorivitrin = ‘$kategorivitrin’, kalinbaslik = ‘$kalinbaslik’ where id=’$urunID'”);

    if(isset($_POST[‘paypal’])) {
    if($kalinbaslik == “1” || $anasayfavitrin == “1” || $kategorivitrin == “1”) {
    echo “<script>alert(‘İlanınız başarıyla eklenmiştir.’);</script><script>location.href=\”paypal-odeme-$tutar.html\”;</script>”;
    } else {
    echo “<script>alert(‘İlanınız başarıyla eklenmiştir. Yönetici onayının hemen arkasından yayınlanacaktır.’);</script><script>location.href=\”index.php\”;</script>”;
    }
    }

    else if(isset($_POST[‘svkredi’])) {
    $uyeID = $_SESSION[‘id’];
    $uyeBul = mysql_query(“SELECT * FROM users where id=’$uyeID'”);
    $oku = mysql_Fetch_Assoc($uyeBul);
    $uyeKredi = $oku[‘kredi’];
    if($uyeKredi >= $tutar) {
    $uyeKredi = $uyeKredi – $tutar;
    mysql_query(“UPDATE users SET kredi=’$uyeKredi’ where id=’$uyeID'”);
    mysql_query(“UPDATE urunler SET aktif=’1′ where id=’$urunID'”);
    echo “<script>alert(‘İlanınız başarıyla eklenmiştir. Kredi Hesabınzdan Çekildi .’);</script><script>location.href=\”index.php\”;</script>”;
    } else {
    echo “<script>alert(‘İlanınız başarıyla eklenmiştir. Hesabınızda yeterli krediniz olmadığı için ilanınız aktif hale gelmemiştir’);</script><script>location.href=\”index.php\”;</script>”;
    }
    } else { echo “<script>alert(‘İlanınız başarıyla eklenmiştir. Yönetici onayının hemen arkasından yayınlanacaktır.’);</script><script>location.href=\”index.php\”;</script>”;
    }
    }
    if($_SESSION[‘ilanEkle’] == 1) {
    if ($_SESSION[‘kategori1’] == “” and $_SESSION[‘kategori2’] == “” and $_SESSION[‘kategori3’] == “”){ header(“Location: index.php?modul=urun_sat”);}
    $sayac = 0;
    while ( $sayac <= 9999 ) {
    $random = rand(9999999999999,0);
    $rand = mysql_query(“SELECT * FROM urunler where ilanno = ‘”.$random.”‘”);
    $varmi = mysql_num_rows($rand);
    if($varmi == “0”){ $ilanno = $random; $sayac = “9999”;}
    $sayac ++;
    }

    $fiyat = $_POST[‘fiyat1’];

    $sql1 = “INSERT INTO urunler (ilanno,userid,anakategori,kategori1,kategori2,kategori3,kategori4,kategori5,kategori_son,baslik,aciklama,il,ilce,map,fiyat,parabirimi,gizlilik,ad,soyad,email,
    evtelefonu,istelefonu,ceptelefonu,yayinsuresi,ilannotu,kayittarihi,kayitsaati,resim1,resim2,resim3,resim4,resim5,resim6,resim7,resim8,resim9,resim10,kategorivitrin,anasayfavitrin,kalinbaslik,aktif,magaza,eticaret) VALUES (
    ‘”.$ilanno.”‘,'”.$_SESSION[‘id’].”‘,'”.$_SESSION[‘kategori1’].”‘,'”.$_SESSION[‘kategori1’].”‘,'”.$_SESSION[‘kategori2’].”‘,'”.$_SESSION[‘kategori3’].”‘,'”.$_SESSION[‘kategori4’].”‘,'”.$_SESSION[‘kategori5’].”‘,'”.$_SESSION[‘sonid’].”‘,'”.$_POST[‘baslik’].”‘,'”.$_POST[‘aciklama’].”‘,'”.$_POST[‘sehirler’].”‘,'”.$_POST[‘ilceler’].”‘,'”.$map.”‘,'”.$fiyat.”‘,'”.$_POST[‘parabirimi’].”‘,'”.$_POST[‘gizlilik’].”‘,'”.$_POST[‘ad’].”‘,'”.$_POST[‘soyad’].”‘,'”.$_POST[’email’].”‘,'”.$_POST[‘evtelefonu’].”‘,'”.$_POST[‘istelefonu’].”‘,'”.$_POST[‘ceptelefonu’].”‘,'”.$_POST[‘yayinsuresi’].”‘,'”.$_POST[‘ilannotu’].”‘,'”.date(“Y-m-d”).”‘,'”.date(“H:i:s”).”‘,'”.$resim_isim1.$uzanti1.”‘,'”.$resim_isim2.$uzanti2.”‘,'”.$resim_isim3.$uzanti3.”‘,'”.$resim_isim4.$uzanti4.”‘,'”.$resim_isim5.$uzanti5.”‘,'”.$resim_isim6.$uzanti6.”‘,'”.$resim_isim7.$uzanti7.”‘,'”.$resim_isim8.$uzanti8.”‘,'”.$resim_isim9.$uzanti9.”‘,'”.$resim_isim10.$uzanti10.”‘,'”.$kategorivitrin.”‘,'”.$anasayfavitrin.”‘,'”.$kalinbaslik.”‘,’0’,'”.$_POST[‘magaza’].”‘,’0’)”;
    mysql_query($sql1);
    $_SESSION[‘urunID’] = mysql_insert_id();
    $qq = mysql_query(“SELECT * FROM alt_detay WHERE kategori1 = ‘”.$_SESSION[‘kategori1’].”‘ and kategori2 = ‘”.$_SESSION[‘kategori2’].”‘”);
    while($cek = mysql_fetch_assoc($qq)){
    $sql = “INSERT INTO urun_alt_detay (detay_id,ilanno,kategori1,kategori2,icerik) VALUES (‘”.$cek[‘id’].”‘,'”.$ilanno.”‘,'”.$_SESSION[‘kategori1’].”‘,'”.$_SESSION[‘kategori2’].”‘,'”.$_POST[‘altdetay_’.$cek[‘id’].”].”‘)”;
    mysql_query($sql);
    if($_POST[‘altdetay_’.$cek[‘id’].”] == “1”){
    $alt_detays .= $cek[‘icerik’].”,”;

    }

    $update = “UPDATE urunler set altdetay = ‘”.$alt_detays.”‘ WHERE ilanno = ‘”.$ilanno.”‘”;
    mysql_query($update);
    }

    $qq2 = mysql_query(“SELECT * FROM detay WHERE kategori1 = ‘”.$_SESSION[‘kategori1’].”‘ and kategori2 = ‘”.$_SESSION[‘kategori2’].”‘”);
    while($cek2 = mysql_fetch_assoc($qq2)){
    $sql2 = “INSERT INTO urun_detay (detay_id,ilanno,kategori1,kategori2,icerik) VALUES (‘”.$cek2[‘id’].”‘,'”.$ilanno.”‘,'”.$_SESSION[‘kategori1’].”‘,'”.$_SESSION[‘kategori2’].”‘,'”.$_POST[‘detay_’.$cek2[‘id’].”].”‘)”;
    mysql_query($sql2);
    if($_POST[‘detay_’.$cek2[‘id’].”] != “” and $_POST[‘detay_’.$cek2[‘id’].”] != “0”){
    $detays .= $cek2[‘icerik’].”=”.$_POST[‘detay_’.$cek2[‘id’].”].” “;
    }

    $update = “UPDATE urunler set detay = ‘”.$detays.”‘ WHERE ilanno = ‘”.$ilanno.”‘”;
    mysql_query($update);

    }
    unset($_SESSION[‘ilanEkle’]);
    }
    if($_POST[‘eticaret’] == 1) {
    $ekle = mysql_query(“INSERT INTO eticaret (urun_id, ilkStok, kargoBilgisi, user_id, komisyon, aktif)
    VALUES (‘”.$_SESSION[‘urunID’].”‘, ‘”.$_POST[‘stok’].”‘, ‘”.$_POST[‘kargoBilgisi’].”‘, ‘”.$_SESSION[‘id’].”‘, ‘”.$_POST[‘komisyon’].”‘, ‘0’)”);
    $guncelle = mysql_query(“UPDATE urunler SET eticaret=’1′ where id='”.$_SESSION[‘urunID’].”‘”);
    }

    }

    }
    ?>

    Buna ek olarak elimde bu dediğim olayı yapabilecek kodlarım da var:
    <?

    function tarihfarki($tarih_gir){

    ///girilecek olan tarihimizin arasındaki “-” işaretinin olması lazım.Örnek olara 02-12-2006 gibi

    ///eğer başka bir kesme kullanacaksanız aşağıda explode satırında bulunan “-” değiştirmeniz yeterli

    ///explode komutu ile tarihimizi parçalara ayırıp değişkenlere aktarıyoruz

    $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”);

    ///burada aylarımızın kaç gün çektiğini değişkenlere aktarıyoruz

    $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;

    ///önce yıl farkı varsa bundan doğan farkı GÜN olarak hesaplayalım

    $yil_fark=($son_yil-$ilk_yil) * 365 ;

    ////for döngüsüyle ayları topluyorum

    for($i=1;$i<$son_ay;$i++){

    $son_ay_toplam=$son_ay_toplam+$ek[$i];

    }

    ///şimdiki  gün ve ay  toplamımız

    $toplam_son_gun=$son_ay_toplam+$son_gun;

    ////girilen ay’ı hesaplayalım

    for($m=1;$m<$ilk_ay;$m++){

    $ilk_ay_toplam=$ilk_ay_toplam+$ek[$m];

    }

    ////girilen ay ve günü hesaplayalım

    $toplam_ilk_gun=$ilk_ay_toplam+$ilk_gun;

    $sonuc=$toplam_son_gun-$toplam_ilk_gun+$yil_fark;

    /////burada sonuc değişkenine sonucumuzu yükledik.

    ///artık kullanacağınız yere göredeğişiklik yapabilirsiniz

    /////ben burada basit bir if deyimi ile eğer tarih bugünün tarihi ise bugün sisteme girmiş

    ////eğer tarih daha önce ise kaç gün fark varsa onu yazıdırıyorum

    return $sonuc;

    }

    ?>

    Bu kodu sayfaya import ettiğim zaman başlangıç tarihi ve bitiş tarihi arasındaki farkı belirliyor.

    Ek bir kod daha var. Bu kod ise zaman farkı < 0 ise işlem yap diyor.

    <?

    ///////yukarıdaki tarihfarki(); fonksiyonumuzu sayfanıza import edip

    //////aşağıdaki gibi kullanabilirsiniz…

    include “include/baglan.php”;

    $sql12 = mysql_query(“SELECT * FROM urunler”);

    while($cek = mysql_fetch_assoc($sql12)){
    if($cek[‘yayinsuresi’] == “1”){ $bitistarihi = date(“Y-m-d” ,strtotime(“+30 days”,strtotime($cek[‘kayittarihi’]))); }
    if($cek[‘yayinsuresi’] == “2”){ $bitistarihi = date(“Y-m-d” ,strtotime(“+60 days”,strtotime($cek[‘kayittarihi’]))); }
    if($cek[‘yayinsuresi’] == “3”){ $bitistarihi = date(“Y-m-d” ,strtotime(“+90 days”,strtotime($cek[‘kayittarihi’]))); }
    $fark = tarihfarki($bitistarihi);
    if($fark <= “0”){

    mysql_query(“DELETE FROM urunler WHERE id = ‘”.$cek[‘id’].”‘”);
    $sil1 = “upload_images/urunresim/”.$cek[‘resim1’];
    $sil2 = “upload_images/urunresim/”.$cek[‘resim2’];
    $sil3 = “upload_images/urunresim/”.$cek[‘resim3’];
    $sil4 = “upload_images/urunresim/”.$cek[‘resim4’];
    $sil5 = “upload_images/urunresim/”.$cek[‘resim5’];
    $sil6 = “upload_images/urunresim/”.$cek[‘resim6’];
    $sil7 = “upload_images/urunresim/”.$cek[‘resim7’];
    $sil8 = “upload_images/urunresim/”.$cek[‘resim8’];
    $sil9 = “upload_images/urunresim/”.$cek[‘resim9’];
    $sil10 = “upload_images/urunresim/”.$cek[‘resim10’];

    @unlink($sil1);
    @unlink($sil2);
    @unlink($sil3);
    @unlink($sil4);
    @unlink($sil5);
    @unlink($sil6);
    @unlink($sil7);
    @unlink($sil8);
    @unlink($sil9);
    @unlink($sil10);

    }

    }

    ?>

    Kodlar siteme göre düzenlenmiş şekilde. benim anlamadığım birkaç nokta var. bu zaman olayını ilanı eklerken mi yapıyoruz yoksa farklı bir işlem ilemi gerçekleştiriliyor.

    Zaman olayını hallettik diyelim. zaman sonunda ilanı ekleyen kişiye otomatik mailde gondermek istiyorum.

1 yazı görüntüleniyor (toplam 1)
  • Bu konuyu yanıtlamak için giriş yapmış olmalısınız.
Bana Ders Anlat © 2008-2022