Klassen und Attribute

Ralph

Erfahrenes Mitglied
Hallo,

weiß jemand, ob man sowas vereinfachen kann? Sprich eine automatische Zuweisung der Attribute über die Schlüssel des Arrays $data ? Vielleicht über each o.ä.?

PHP:
$sql = "SELECT 
		TO_CHAR(a.freigabe, '".$this->_SETTINGS['datum'][$_SESSION["sprache"]]['lang']."') as datum, 
		a.a_user,text, a.title, a.url, a.url_bez, 
		TO_CHAR(a.freigabe, '".$this->_SETTINGS['datum'][$_SESSION["sprache"]]['zeit']."') as zeit,
		p.vorname, p.name, p.email,p.anrede, a.obj
		FROM page_press a, p_daten_zr p 
		WHERE a.p_obj = p.obj
		AND a.obj = ".$id;
		
		$stm = OCIParse($this->conn,$sql);
		if(OCIExecute($stm))
			OCIFetchInto($stm, $data);
		
		$this->datum = $data[0];
		$this->author = $data[1];
		$this->text = $data[2];
		$this->titel = $data[3];
		$this->link = $data[4];
		$this->link_bez = $data[5];
		$this->zeit = $data[6];
		$this->vorname = $data[7];
		$this->nachname = $data[8];
		$this->email = $data[9];
		$this->anrede = $data[10];
		$this->obj = $data[11];
 
Versuch mal Folgendes:
PHP:
<?php
	[…]
	$stm = OCIParse($this->conn, $sql);
	if( OCIExecute($stm) ) {
		$data = oci_fetch_array($stm, OCI_ASSOC);
		foreach( $data as $key => $value ) {
			eval('\$this->'.$key.' = "'.addslashes($value).'";');
		}
	}
	[…]
?>
 
Danke. Musste noch ein wenig abändern, so funktioniert es nun perfekto:

PHP:
if( OCIExecute($stm) ) { 
	        OCIFetchInto($stm,$data, OCI_ASSOC); 
	        foreach( $data as $key => $value ) {
	           eval("\$this->".strtolower($key)." = '".addslashes($value)."';"); 
	        } 
	    }
 
Zurück