sgbd(); if(($id = $sgbd->add_data($table_name, $values)) === false) return false; return $id; } # ---------------------------------------------------------------------------------------- # read # public function data_read($params = array()){ $sgbd = $this->sgbd(); $table_name = isset($params["table_name"]) ? $params["table_name"] : ""; $index_name = isset($params["index_name"]) ? $params["index_name"] : ""; $index_value = isset($params["index_value"]) ? $params["index_value"] : ""; if(!$table_name || !$index_name || !$index_value) return false; $item = array(); if($rst = $sgbd->open_data($table_name)){ while($v_rst = $sgbd->fetch_data($rst)){ if(isset($v_rst)){ if(isset($v_rst[$index_name]) && ($v_rst[$index_name] == $index_value)){ $item = $v_rst; } } else{ $sgbd->close_data($rst); return false; } } $sgbd->close_data($rst); } else return false; return $item; } # ---------------------------------------------------------------------------------------- # update # public function data_update($params = array()){ $sgbd = $this->sgbd(); $table_name = isset($params["table_name"]) ? $params["table_name"] : false; $values = (isset($params["values"]) && is_array($params["values"])) ? $params["values"] : false; $index_name = isset($params["index_name"]) ? $params["index_name"] : false; $index_value = isset($params["index_value"]) && (strlen($params["index_value"]) > 0) ? $params["index_value"] : false; if(!$table_name || !$index_name || !$index_value || !$values) return false; if($rst = $sgbd->open_data($table_name)){ while($v_rst = $sgbd->fetch_data($rst)){ if(isset($v_rst)){ if(isset($v_rst["id"]) && isset($v_rst[$index_name]) && ($v_rst[$index_name] == $index_value)){ foreach($values as $attribut_name => $attribut_value){ $v_rst[$attribut_name] = $attribut_value; if(!$sgbd->set_data($table_name, $v_rst["id"], $v_rst)){ $sgbd->close_data($rst); return false; } } } } else{ $sgbd->close_data($rst); return false; } } $sgbd->close_data($rst); } else return false; return true; } # ---------------------------------------------------------------------------------------- # delete # public function data_delete($params = array()){ $sgbd = $this->sgbd(); $table_name = isset($params["table_name"]) ? $params["table_name"] : false; $index_name = isset($params["index_name"]) ? $params["index_name"] : false; $index_value = isset($params["index_value"]) && (strlen($params["index_value"]) > 0) ? $params["index_value"] : false; if(!$table_name || !$index_name || !$index_value) return false; if($rst = $sgbd->open_data($table_name)){ while($v_rst = $sgbd->fetch_data($rst)){ if(isset($v_rst)){ if(isset($v_rst["id"]) && isset($v_rst[$index_name]) && ($v_rst[$index_name] == $index_value)){ if(!$sgbd->del_data($table_name, $v_rst["id"])){ $sgbd->close_data($rst); return false; } } } else{ $sgbd->close_data($rst); return false; } } $sgbd->close_data($rst); } else return false; return true; } # ---------------------------------------------------------------------------------------- # list # public function data_list($params = array()){ $sgbd = $this->sgbd(); $table_name = isset($params["table_name"]) ? $params["table_name"] : ""; if(!$table_name) return false; $index_name = isset($params["index_name"]) ? $params["index_name"] : ""; $order_by = isset($params["order_by"]) ? $params["order_by"] : null; $order = isset($params["order"]) ? $params["order"] : "ASC"; $limit = isset($params["limit"]) ? $params["limit"] : null; $offset = isset($params["offset"]) ? $params["offset"] : null; $list = array("list" => array(), "total" => 0); $filters = isset($params["filters"]) ? $params["filters"] : array(); $list = array("list" => array(), "total" => 0); $res = array(); if($rst = $sgbd->open_data($table_name)){ while($v_rst = $sgbd->fetch_data($rst)){ if(isset($v_rst)) $res[$v_rst["id"]] = $v_rst; else{ $res = false; break; } } $sgbd->close_data($rst); if($res === false) return false; if(isset($order_by)) $res = $this->ordonne($res, $order_by, $order); foreach($res as $id_res => $v_rst){ $MATCH = true; foreach($filters as $filter){ $FILTER_MATCH = false; if(isset($filter[0]) && isset($v_rst[$filter[0]]) && isset($filter[1])){ switch(strtolower($filter[1])){ case "eq": if(isset($filter[2])){ $FILTER_MATCH = ($v_rst[$filter[0]] == $filter[2]); break; } case "lt": if(isset($filter[2])){ $FILTER_MATCH = ($v_rst[$filter[0]] < $filter[2]); break; } case "lte": if(isset($filter[2])){ $FILTER_MATCH = ($v_rst[$filter[0]] <= $filter[2]); break; } case "gt": if(isset($filter[2])){ $FILTER_MATCH = ($v_rst[$filter[0]] > $filter[2]); break; } case "gte": if(isset($filter[2])){ $FILTER_MATCH = ($v_rst[$filter[0]] >= $filter[2]); break; } } } if(!$FILTER_MATCH){ $MATCH = false; break; } } if($MATCH){ $list["total"]++; if(isset($offset)) $MATCH = $list["total"] > $offset; if($MATCH && isset($limit)) $MATCH = $list["total"] <= $limit; } if($MATCH) $list["list"][$v_rst[$index_name ? $index_name : "id"]] = $v_rst; if(isset($limit) && ($list["total"] > $limit)) break; } } else return false; return $list; } }