X-Git-Url: http://git.dj3c1t.com/?a=blobdiff_plain;ds=sidebyside;f=mw%2Fapp%2Fdata%2Fmodules%2Fsql%2Fmw_data_crud.php;h=f438ef1785742e1c3869295a39de6218d9e2645c;hb=422d883e3ed8ee55ee41e3b7826f32b79cea646d;hp=13aa8b17ed84d93189357762fba0feccdf8ae43a;hpb=e1b64e4088232b9d7b4acb2dc24279bb38fcafba;p=mtweb diff --git a/mw/app/data/modules/sql/mw_data_crud.php b/mw/app/data/modules/sql/mw_data_crud.php index 13aa8b1..f438ef1 100644 --- a/mw/app/data/modules/sql/mw_data_crud.php +++ b/mw/app/data/modules/sql/mw_data_crud.php @@ -3,79 +3,18 @@ class mw_data_crud extends mw_data{ # ---------------------------------------------------------------------------------------- - # call_crud + # description # - function call_data_crud($method_name, $arguments){ - $r = false; + function data_desc($params = array()){ $sgbd = $this->sgbd(); - // add_(array $values) - if( - (substr($method_name, 0, 4) == "add_") - && ($table_name = substr($method_name, 4)) - && ($sgbd->table_exists("#--".$table_name)) - ){ - $r = $this->data_insert( - array( - "values" => $arguments[0], - "table_name" => $table_name - ) - ); - } - // get_(string $index_name, string $index_value) - elseif( - (substr($method_name, 0, 4) == "get_") - && ($table_name = substr($method_name, 4)) - && ($sgbd->table_exists("#--".$table_name)) - ){ - $r = $this->data_read( - array( - "table_name" => $table_name, - "index_name" => $arguments[0], - "index_value" => $arguments[1] - ) - ); - } - // list_(array $params) - elseif( - (substr($method_name, 0, 5) == "list_") - && ($table_name = substr($method_name, 5)) - && ($sgbd->table_exists("#--".$table_name)) - ){ - $params = $arguments[0]; - $params["table_name"] = $table_name; - $r = $this->data_list($params); - } - // set_(string index_name, string index_value, array $values) - elseif( - (substr($method_name, 0, 4) == "set_") - && ($table_name = substr($method_name, 4)) - && ($sgbd->table_exists("#--".$table_name)) - ){ - $r = $this->data_update( - array( - "table_name" => $table_name, - "index_name" => $arguments[0], - "index_value" => $arguments[1], - "values" => $arguments[2] - ) - ); - } - // del_(string $index_name, string $index_value) - elseif( - (substr($method_name, 0, 4) == "del_") - && ($table_name = substr($method_name, 4)) - && ($sgbd->table_exists("#--".$table_name)) - ){ - $r = $this->data_delete( - array( - "table_name" => $table_name, - "index_name" => $arguments[0], - "index_value" => $arguments[1] - ) - ); + $table_name = isset($params["table_name"]) ? $params["table_name"] : ""; + if(!$table_name) return false; + try{ + $desc = $sgbd->desc_table("#--".$table_name); } - return $r; + catch(Exception $e){ $desc = false; } + return $desc; } # ---------------------------------------------------------------------------------------- @@ -127,44 +66,6 @@ } # ---------------------------------------------------------------------------------------- - # list - # - - 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"] : ""; - $select = "SELECT `#--".$table_name."`.*"; - $from = " FROM `#--".$table_name."`"; - $where = isset($params["where"]) ? " WHERE ".$params["where"] : ""; - $order = isset($params["order_by"]) ? - " ORDER BY ".$params["order_by"].(isset($params["order"]) ? " ".$params["order"] : "") - : ""; - $limit = isset($params["limit"]) ? - " LIMIT ".$params["limit"].(isset($params["offset"]) ? " OFFSET ".$params["offset"] : "") - : ""; - $list = array("list" => array(), "total" => 0); - try{ - $sql = "SELECT count(*) as n FROM(".$select.$from.$where.") res"; - $rst = $sgbd->query($sql); - if($v_rst = $sgbd->fetch_assoc($rst)) $list["total"] = $v_rst["n"]; - $sgbd->free_result($rst); - if($list["total"] > 0){ - $sql = "SELECT * FROM(".$select.$from.$where.$order.$limit.") res"; - $rst = $sgbd->query($sql); - while($v_rst = $sgbd->fetch_assoc($rst)){ - if($index_name) $list["list"][$v_rst[$index_name]] = $v_rst; - else $list["list"][] = $v_rst; - } - $sgbd->free_result($rst); - } - } - catch(Exception $e) { $list = false; } - return $list; - } - - # ---------------------------------------------------------------------------------------- # update # @@ -173,7 +74,7 @@ $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"]) ? $params["index_value"] : 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; try{ $sql = "UPDATE `#--".$table_name."`"; @@ -203,10 +104,83 @@ $sql = "DELETE FROM `#--".$table_name."` WHERE `".$index_name."`=".$this->eq($index_value); $sgbd->query($sql); } - catch(Exception $e) { return false; } + catch(Exception $e) { debug($e->getMessage()); return false; } return true; } + # ---------------------------------------------------------------------------------------- + # list + # + + 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"] : ""; + $select = "SELECT `#--".$table_name."`.*"; + $from = " FROM `#--".$table_name."`"; + $where = isset($params["where"]) ? " WHERE ".$params["where"] : ""; + if(isset($params["filters"])){ + foreach($params["filters"] as $filter){ + $and_where = ""; + if(isset($filter[0]) && isset($filter[1])){ + switch(strtolower($filter[1])){ + case "eq": + if(isset($filter[2])){ + $and_where .= ($where ? " AND " : " WHERE ").$filter[0]."=".$this->eq($filter[2]); + break; + } + case "lt": + if(isset($filter[2])){ + $and_where .= ($where ? " AND " : " WHERE ").$filter[0]."<".$this->eq($filter[2]); + break; + } + case "lte": + if(isset($filter[2])){ + $and_where .= ($where ? " AND " : " WHERE ").$filter[0].">=".$this->eq($filter[2]); + break; + } + case "gt": + if(isset($filter[2])){ + $and_where .= ($where ? " AND " : " WHERE ").$filter[0].">".$this->eq($filter[2]); + break; + } + case "gte": + if(isset($filter[2])){ + $and_where .= ($where ? " AND " : " WHERE ").$filter[0].">=".$this->eq($filter[2]); + break; + } + } + } + $where .= $and_where; + } + } + $order = isset($params["order_by"]) ? + " ORDER BY ".$params["order_by"].(isset($params["order"]) ? " ".$params["order"] : "") + : ""; + $limit = isset($params["limit"]) ? + " LIMIT ".$params["limit"].(isset($params["offset"]) ? " OFFSET ".$params["offset"] : "") + : ""; + $list = array("list" => array(), "total" => 0); + try{ + $sql = "SELECT count(*) as n FROM(".$select.$from.$where.") res"; + $rst = $sgbd->query($sql); + if($v_rst = $sgbd->fetch_assoc($rst)) $list["total"] = $v_rst["n"]; + $sgbd->free_result($rst); + if($list["total"] > 0){ + $sql = "SELECT * FROM(".$select.$from.$where.$order.$limit.") res"; + $rst = $sgbd->query($sql); + while($v_rst = $sgbd->fetch_assoc($rst)){ + if($index_name) $list["list"][$v_rst[$index_name]] = $v_rst; + else $list["list"][] = $v_rst; + } + $sgbd->free_result($rst); + } + } + catch(Exception $e) { $list = false; } + return $list; + } + } ?> \ No newline at end of file