Ana sayfa › Forumlar › PROGRAMLAMA › PHP › Belirli tarihte veritabanından veri silmek
- Bu konu 0 yanıt içerir, 1 izleyen vardır ve en son 8 yıl 1 ay önce Ahmet Aksoy tarafından güncellenmiştir.
-
YazarYazılar
-
19 Nisan 2013: 18:15 #16550Ahmet 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.
-
YazarYazılar
- Bu konuyu yanıtlamak için giriş yapmış olmalısınız.