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

Sorgu ile gelen dizi görünümlü metni diziye çeviremedim bununla birlikte kodu aşağıdaki şekle getirip çözdüm.

	/* Doğumgünü Listesi */
	$DogumGunuListesi = db'den gelen sonuç;

	$veri = str_replace(" ","",$DogumGunuListesi);
	$veri = str_replace("'","",$veri);

	$parcala = explode(",", $veri);
  
	foreach ($parcala as $values) {
		if(trim($values)!="") {
			$tarih = date(d).".".date(m);
			$konum = strpos($values, $tarih);

			if ($konum === false) {
			} else {
				$parcala2[] = explode("=>", trim($values));
			}			
		}
	}
	
	foreach ($parcala2 as $ekranbas) {
		$myBirthdayList .= "<li>".$ekranbas[0]."</li>";
	}
  
	if($myBirthdayList=="") {
		$myBirthdayList = "<li><b>[%LNG|dogumgunuyok%]</b></li>";
	}

	$myBirthdayList = "<ul class='myBirthdayList'>".$myBirthdayList."</ul>";
	/* Doğumgünü Listesi */

Emeği geçen hepinize teşekkürler.