diff options
Diffstat (limited to 'class/CommonTable.php')
-rw-r--r-- | class/CommonTable.php | 40 |
1 files changed, 36 insertions, 4 deletions
diff --git a/class/CommonTable.php b/class/CommonTable.php index 51c0cd6..a7d029d 100644 --- a/class/CommonTable.php +++ b/class/CommonTable.php @@ -147,9 +147,40 @@ abstract class CommonTable } /** + * Update a row in the table + * + * @param integer $id of the record + * @param hashtable $fields of key => value + * + * @return integer : number of row deleted + */ + public function update($id, array $fields) + { + $sql = "UPDATE `".$this->table."` "; + + $link = 'SET'; + foreach ($fields as $key => $value) { + $sql .= "$link `$key`="; + if (is_null($value)) { + $sql .= 'NULL'; + } else if (is_numeric($value)) { + $sql .= $value; + } else { + $sql .= "'".addslashes($value)."'"; + } + $link = ','; + } + $sql .= " WHERE `id`=".intval($id); + + $nb = $this->exec($sql); + + return $nb; + } + + /** * Create the table - * - * @return void + * + * @return void */ abstract protected function createTable(); @@ -219,14 +250,15 @@ abstract class CommonTable * Retrieve a big array with all date from the table * * @param array|string $crit for the request + * @param string $key name of the key for the return array * * @return array, index is rowid, value is a hastable */ - public function getArray($crit='') + public function getArray($crit='', $key='id') { $tab = array(); foreach ($this->request($crit) as $id => $data) { - $tab[$id] = $data; + $tab[$data[$key]] = $data; } return $tab; } |