summaryrefslogtreecommitdiffstats
path: root/class/CommonTable.php
diff options
context:
space:
mode:
Diffstat (limited to 'class/CommonTable.php')
-rw-r--r--class/CommonTable.php40
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;
}