tarih ekleme hatası

PHP Programlama dili hakkında tartışmalar, paylaşım ve yardımlaşma forumu.
Cevapla
falcon34
Kayıtlı Kullanıcı
Mesajlar: 2
Kayıt: 31.01.2023, 15:45

tarih ekleme hatası

Mesaj gönderen falcon34 »

aşağıdaki kod bloğunda gecerligun(1-9999 arası rakam) a artı olarak tbl_files tablosundaki belge_tarihi (g-a-Y) sutunundaki tarihi eklemek istiyorum. Şu anki durumda bu günün tarihine gecerligun sayısı kadar ekleme yapıyor.

$statement = $this->dbh->prepare("SELECT gecerli_gun FROM tbl_categories WHERE id = :id");
$statement->bindParam(':id', $kategoriId, PDO::PARAM_INT);
$statement->execute();

$gecerligun = 0;


$row = $statement->fetch() ;
$gecerligun = $row['gecerli_gun'];

if ($gecerliyil > 0){
$date1=date_create(date("d-m-Y"));
date_add($date1,date_interval_create_from_date_string($gecerligun . " days"));
$result_str = $date1->format('d-m-Y');
$data["expiry_date"] = $result_str;
falcon34
Kayıtlı Kullanıcı
Mesajlar: 2
Kayıt: 31.01.2023, 15:45

Re: tarih ekleme hatası

Mesaj gönderen falcon34 »

Yok mudur yardımcı olacak kimse??
alexm3912
Kayıtlı Kullanıcı
Mesajlar: 1
Kayıt: 23.12.2023, 19:42

Re: tarih ekleme hatası

Mesaj gönderen alexm3912 »

Anladığım kadarıyla, şu anda kodunuz geçerlilik gün sayısını bugünün tarihine ekleyerek bir sonuç üretiyor. Ancak, isteğiniz tbl_files tablosundaki belge_tarihi sütunundan alınan bir tarihe bu geçerlilik gün sayısını eklemek. Bu işlem için kodunuzu aşağıdaki şekilde güncellemeniz gerek:Öncelikle tbl_files tablosundan ilgili belge_tarihi sütunundaki tarihi çekecek bir SQL sorgusu yazmanız gerekecek.Bu tarihi PHP'de bir DateTime objesine dönüştürmelisiniz.Sonra, bu tarihe geçerlilik gün sayısını eklemelisiniz.A printable sheet refers to a document or file designed to be printed on a physical sheet of paper. These sheets can vary widely in content and purpose, and they are often available in formats such as PDF, Word, or image files that are suitable for printing.A silent auction bid sheet is a crucial component of any silent auction event. It serves as a platform for bidders to place their bids and keep track of the current bid price.

Ornek olarak:

$kategoriId = // Kategori ID'niz buraya gelecek

// Kategori tablosundan geçerlilik gününü çek
$statement = $this->dbh->prepare("SELECT gecerli_gun FROM tbl_categories WHERE id = :id");
$statement->bindParam(':id', $kategoriId, PDO::PARAM_INT);
$statement->execute();
$row = $statement->fetch();
$gecerligun = $row['gecerli_gun'];

// Files tablosundan belge tarihini çek
$statement = $this->dbh->prepare("SELECT belge_tarihi FROM tbl_files WHERE kategori_id = :kategori_id");
$statement->bindParam(':kategori_id', $kategoriId, PDO::PARAM_INT);
$statement->execute();
$row = $statement->fetch();
$belge_tarihi = $row['belge_tarihi'];

// Tarihi DateTime objesine dönüştür ve geçerlilik gününü ekle
$date = DateTime::createFromFormat('d-m-Y', $belge_tarihi);
$date->modify("+$gecerligun days");

// Formatlanmış sonucu al
$result_str = $date->format('d-m-Y');
$data["expiry_date"] = $result_str;

Bu kod, önce geçerlilik gününü kategori tablosundan alır, sonra belge tarihini dosya tablosundan çeker. Belge tarihini bir DateTime objesine dönüştürdükten sonra, üzerine geçerlilik gün sayısını ekler ve sonucu formatlayarak döndürür.
Kullanıcı avatarı
TRWE_2012
Kayıtlı Kullanıcı
Mesajlar: 32
Kayıt: 14.05.2022, 06:59

Re: tarih ekleme hatası

Mesaj gönderen TRWE_2012 »

Belirttiğiniz kod bloğunda, gecerli_gun sayısını günün tarihine eklemek yerine, tbl_files tablosundaki belge_tarihi sütunundaki tarihi alıp bu tarihe gecerli_gun sayısını eklemek istiyorsanız, öncelikle belge_tarihi değerini almanız gerekiyor. Aşağıda bu işlemi gerçekleştiren güncellenmiş bir kod örneği bulunmaktadır:

Kod: Tümünü seç

// tbl_categories tablosundan gecerli_gun değerini al
$statement = $this->dbh->prepare("SELECT gecerli_gun FROM tbl_categories WHERE id = :id");
$statement->bindParam(':id', $kategoriId, PDO::PARAM_INT);
$statement->execute();

$row = $statement->fetch();
$gecerligun = $row['gecerli_gun'];

// tbl_files tablosundan belge_tarihi değerini al
$statement = $this->dbh->prepare("SELECT belge_tarihi FROM tbl_files WHERE id = :fileId");
$statement->bindParam(':fileId', $fileId, PDO::PARAM_INT); // $fileId değişkenini tanımlamanız gerekiyor
$statement->execute();

$row = $statement->fetch();
$belgeTarihi = $row['belge_tarihi'];

// belge_tarihi'ni DateTime nesnesine çevir
$date1 = date_create($belgeTarihi);

// gecerli_gun sayısını ekle
if ($gecerligun > 0) {
    date_add($date1, date_interval_create_from_date_string($gecerligun . " days"));
}

// Sonucu formatla
$result_str = $date1->format('d-m-Y');
$data["expiry_date"] = $result_str;
Kod İçerik Açıklaması:

tbl_files Tablosundan Tarih Alma:

belge_tarihi değerini almak için tbl_files tablosuna bir sorgu ekledim. Bu sorguda fileId değişkenini kullanarak belirli bir dosyanın tarihini alıyoruz. fileId değişkenini tanımlamanız gerektiğini unutmayın.

Tarih Formatı:

belge_tarihi değerinin formatının Y-m-d (veya uygun bir format) olduğundan emin olun. Eğer farklı bir formatta ise, date_create fonksiyonu ile doğru bir şekilde işlenmesi gerekebilir.

Tarih Ekleme:

gecerli_gun sayısını belge_tarihi üzerine ekliyoruz.

Sonuç Formatlama:

Sonuç tarihini d-m-Y formatında alıyoruz ve $data["expiry_date"] değişkenine atıyoruz.

Bu kod, tbl_files tablosundaki belge_tarihi değerine gecerli_gun sayısını ekleyerek yeni bir tarih oluşturur.
Cevapla

“PHP” sayfasına dön

Kimler çevrimiçi

Bu forumu görüntüleyen kullanıcılar: Hiç bir kayıtlı kullanıcı yok ve 3 misafir