v2.5.2
Giriş yap

Veritabanından Gelen Değerleri Class içinde Basmak

yerdemli
471 defa görüntülendi

Merhaba Arkadaşlar,

Aşağıdaki şekilde statik bir bir class ile doğum günü gelen kişilerin bir listesini basıyorum.

    class Birthday {
    	private $birthDays;
    	public $today;
    	public $notifications;
    	public function __construct() {
    		global $DogumGunuListesi;
    		$this->today = new DateTime('today');
    		$this->birthDays = [
    		    //echo $DogumGunuListesi;
    			'Ali' => '17-09-1997',
    			'Veli' => '11-09-1993',
    			'Zeki' => '15-09-1991'
    		];
    		$this->notifications = [];
    		
    	}
    	public function birthReminder() {
    		foreach ($this->birthDays as $name => $birthDay) {
    			$birthDate = new DateTime($birthDay);
    			
    			if($this->compareDay($birthDate) && $this->compareMonth($birthDate)) {
    			
    				array_push($this->notifications, [
    					"age" => $birthDate->diff($this->today)->y,
    					"name" => $name,
    					"dob" => $birthDay
    				]);
    			} 
    		}
    	}
    	protected function compareDay($birthDate) {
    		return $birthDate->format('d') == $this->today->format('d');
    	}
    	protected function compareMonth($birthDate) {
    		return $birthDate->format('m') == $this->today->format('m');
    	}
    }
    
    $person = new Birthday();
    $person->birthReminder();

Aşağıdaki bilgileri mediumtext olarak veritabanında tutuyorum.

	'Ali' => '17-09-1997',
	'Veli' => '11-09-1993',
	'Zeki' => '15-09-1991'

Bununla birlikte veritabanından çekip class'a basarak kullanamıyorum.
Veritabanından çektiğim ve $DogumGunuListesi değişkenine eşitlediğim bilgileri basmak için global $DogumGunuListesi; tanımı yaptım, olmadı.
Sorguyu class'ın içinde yaptım yine olmadı.

Nerede hata yaptığımı bir türlü bulamadım. Yardımcı olabilirseniz memnun olurum.

Şimdilik manuel olarak listeyi koda yapıştırarak çalıştırabiliyorum.

Teşekkürler.

yerdemli
967 gün önce

Tek bir sorun kaldı. $DogumGunuListesi aslında dizi değil.
Sorumda da belirttiğim gibi bilgileri mediumtext olarak veritabanında tutuyorum.
Sorumu yazarken bahsettim bununla birlikte çok yüzeysel kalmış olabilir.

Bu ekran alıntısındaki gibi array görünümlü bir metin aslında. Bunu diziye çevirmeliyim.
Sanırım parçalayıp tekrar dizi olarak birleştirmem gerekiyor.