phpbar.de logo

Mailinglisten-Archive

[php] Blog objektorientiert programmieren

[php] Blog objektorientiert programmieren

Nico Haase nico.haase at gmx.de
Sam Mai 7 22:11:14 CEST 2005


Moin Daniel,

Daniel Haller kritzelte:
> - setEntry
>   Diese Methode bekommt alle Variablen übergeben,
>   die für einen neuen Eintrag in die DB geschrieben werden sollen.
>   Die Methode schreibt einfach den Eintrag in die DB,
>   und gibt TRUE oder FALSE zurück, je nachdem ob der Eintrag geklappt
>   hat oder nicht.
>
> - editEntry
>   Macht im Prinzip dasselbe wie "setEntry",
>   erstellt aber keinen neuen Datensatz, sondern editiert einen
>   vorhandenen.

Die beiden habe ich übrigens in einer Klasse so miteinander verknüpft,
dass setEntry den Datensatz anlegt und dabei nur den Titel (bei mir geht
es um Bücher, die rezensiert werden) schon einfügt. Danach werden die
ganzen Variablen inklusive der ID an editBook übergeben - denn so muss
ich Umprogrammierungen beim Eingeben und Ändern eines Bucheintrags nur
in einer Funktion vornehmen und weiß genau, dass in beiden Fällen die
neue Funktionsweise werkelt.

Als PHP5-Code sieht das dann so aus:
public function addNewBook ( $data )
 {
 	global $mysql_class;
	$query = 'INSERT INTO books (titel) VALUES ("' .
mysql_escape_string(ersetzesoz($data['titel'])) . '")';
	$mysql_class->sql_query ( $query );
	$id = $mysql_class->sql_getID();
	return $this->editBook ( $id, $data );
 }

public function editBook ( $id, $data )
 {
 	global $mysql_class;
 	$inputToQuery = array();
 	if ( isset ( $data['titel'] ) )
 	 {
 	 	$inputToQuery[] = 'titel = "' .
mysql_escape_string(ersetzesoz($data['titel'])) . '"';
 	 }
 	if ( isset ( $data['verlag'] ) )
 	 {
 	 	$inputToQuery[] = 'verlag = ' . (int)$data['verlag'];
 	 }
 	if ( isset ( $data['isbn'] ) )
 	 {
 	 	$inputToQuery[] = 'isbn = "' .
mysql_escape_string($data['isbn']) . '"';
 	 }
 	if ( isset ( $data['sorte'] ) )
 	 {
 	 	$inputToQuery[] = 'sorte = ' . (int)$data['sorte'];
 	 }
 	if ( isset ( $data['suchwort'] ) )
 	 {
 	 	$inputToQuery[] = 'suchwort = "' .
mysql_escape_string(ersetzesoz($data['suchwort'])) . '"';
 	 }
 	$query = 'UPDATE books SET ' . implode ( ', ', $inputToQuery ) .
' WHERE id = ' . (int)$id;
 	$result = $mysql_class->sql_query ( $query );
 	return array ( 'result' => $result, 'query' => $query, 'id' =>
$id );	 		 	
 }

Mfg
Nico

-- 
www.buchtips.net - Rezensionen online

php::bar PHP Wiki   -   Listenarchive