77b5d4c4d06206a3511027764b76e658307256ee
bernd Ein paar neue Klassen

bernd authored 16 years ago

1) <?php
2) 
3) require_once('inc/db_connect.php');
4) require_once('inc/base.php');
5) require_once('inc/debug.php');
6) 
7) 
8) abstract class KeksData
9) {
10)   protected $default_table;
11)   
bernd Cookie einen eindeutigen Na...

bernd authored 16 years ago

12)   protected $raw_data = array();
bernd Ein paar neue Klassen

bernd authored 16 years ago

13)   protected $data = array();
bernd Cookie einen eindeutigen Na...

bernd authored 16 years ago

14)   protected $changes = array();
bernd Ein paar neue Klassen

bernd authored 16 years ago

15) 
16)   function __get($key)
17)   {
18)     if (array_key_exists($key, $this->data))
19)       return $this->data[$key];
20)     elseif (isset($this->$key))
21)       return $this->$key;
22)     // else werfe fehler
23)   }
24) 
25)   function __set($key, $value)
26)   {
bernd Cookie einen eindeutigen Na...

bernd authored 16 years ago

27)     if (array_key_exists($key, $this->raw_data))
28)     {
29)       $this->raw_data[$key] = $value;
30)       $this->changes[$key] = $value;
31)       $this->parse($this->raw_data);
32)     }
33)     elseif (array_key_exists($key, $this->data))
bernd schokokeks.org-Domain ist w...

bernd authored 16 years ago

34)       $this->data[$key] = $value;
35)       // return false;
bernd Ein paar neue Klassen

bernd authored 16 years ago

36)     elseif (isset($this->$key))
37)       $this->$key = $value;
38)     else
39)       $this->data[$key] = $value;
40)   }
41) 
42)   protected function setup()
43)   {
44)     $fields = array();
45)     $res = db_query("DESCRIBE {$this->default_table}");
46)     while ($f = mysql_fetch_object($res))
47)     {
48)       $fields[$f->Field] = $f->Default;
49)     }
bernd schokokeks.org-Domain ist w...

bernd authored 16 years ago

50)     $this->raw_data = $fields;
51)     $this->raw_data['id'] = NULL;
bernd Ein paar neue Klassen

bernd authored 16 years ago

52)     $this->data = $fields;
bernd Domain-Klasse benutzen

bernd authored 16 years ago

53)     $this->data['id'] = NULL;
bernd Ein paar neue Klassen

bernd authored 16 years ago

54)   }
55) 
56) 
57)   function getData($fields, $restriction = NULL, $table = NULL)
58)   {
59)     $where = '';
60)     if ($restriction)
61)       $where = 'WHERE '.$restriction;
62)     if (! $table)
63)       $table = $this->default_table;
64)     if (is_array($fields))
65)       $fields = implode(',', $fields);
66)     
67)     $res = db_query("SELECT {$fields} FROM {$table} {$where}");
68)     $return = array();
69)     while ($arr = mysql_fetch_assoc($res))
70)       array_push($return, $arr);
71)     return $return;
72)   }
73) 
74) 
75)   function loadByID($id)
76)   {
77)     $id = (int) $id;
bernd Cookie einen eindeutigen Na...

bernd authored 16 years ago

78)     DEBUG("requested to load ID »{$id}«");
bernd Ein paar neue Klassen

bernd authored 16 years ago

79)     $res = $this->getData('*', "id={$id} LIMIT 1");
bernd Domain-Klasse benutzen

bernd authored 16 years ago

80)     if (count($res) < 1)
81)       return false;
bernd Ein paar neue Klassen

bernd authored 16 years ago

82)     $this->parse($res[0]);
83)   }
84) 
85) 
bernd Cookie einen eindeutigen Na...

bernd authored 16 years ago

86)   function save()
87)   {
88)     $upd = array();
89)     foreach ($this->changes as $key => $value)
90)     {
91)       $value = mysql_real_escape_string($value);
92)       array_push($upd, "`{$key}`='{$value}'");
93)     }
94)     db_query("UPDATE {$this->default_table} SET ".implode(', ', $upd)." WHERE id={$this->data['id']};");
95)   }
96)