⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 genericobjectcollection.phpm

📁 Professional PHP5 code for this book
💻 PHPM
字号:
<?  class GenericObjectCollection {        # Member Variables    var $table_name;    var $class_name;        var $items_per_page;    var $item_count = 0;        var $id_array;        var $obj_array;        function __construct($table_name, $class_name) {      $this->table_name = $table_name;      $this->class_name = $class_name;    }        function AddTuple($id) {      if (!$this->id_array) {        $this->id_array = array();      };      array_push($this->id_array, $id);      $this->item_count = sizeof($this->id_array);    }        function SetPageSize($items_per_page) {      $this->items_per_page = $items_per_page;    }        function GetItemCount() {      return $this->item_count;    }        function GetNumPages() {      return(ceil($this->item_count / $this->items_per_page));    }        function _GetCommaSeparatedIDList($start_lim = 0, $end_lim = -1) {      $s = "";      if ($end_lim == -1) {        $end_lim = sizeof($this->id_array)-1;      };      for ($i=$start_lim; $i<=$end_lim; $i++) {        if (is_numeric($this->id_array[$i])) {          $s = $s . $this->id_array[$i] . ",";        };      };      $s = substr($s, 0, strlen($s) - 1);      return $s;    }        function _GetIndexFromTupleID($tuple_id) {      $index = -1;      for ($i=0; $i<=sizeof($this->id_array)-1; $i++) {        if ($this->id_array[$i] == $tuple_id) {          $index = $i;        };      };      return $index;    }        function PopulateObjectArray($page_num = 0) {      $items_per_page = $this->items_per_page;      if ($this->item_count > 0) {        if ($page_num > 0) {          $start_lim = ($items_per_page * ($page_num - 1));          $end_lim = ($start_lim + $items_per_page) - 1;          if ($end_lim > ($this->item_count-1)) {            $end_lim = $this->item_count - 1;          };          $stmt = "SELECT * FROM \"" . $this->table_name . "\" WHERE id IN (" . $this->_GetCommaSeparatedIDList($start_lim, $end_lim). ")";        } else {          $stmt = "SELECT * FROM \"" . $this->table_name . "\" WHERE id IN (" . $this->_GetCommaSeparatedIDList(). ")";        };        # Perform SQL query         $sql = new sql(0);        $sql->query($stmt);                $result_rows = $sql->get_table_hash();                for ($i=0; $i<=sizeof($result_rows)-1; $i++) {          $this_row = $result_rows[$i];          $this_db_row_id = $this_row["id"];          $this_index = $this->_GetIndexFromTupleID($this_db_row_id);          if ($this_index >= 0) {            $refObjArrayIndexObj = &$this->obj_array[$this_index];            $s = "\$refObjArrayIndexObj = new " . $this->class_name . "(" . $this_db_row_id . ");";            eval($s);            $refObjArrayIndexObj->ForceLoaded();            foreach ($this_row as $key => $value) {              if (!(is_numeric($key))) {                $refObjArrayIndexObj->SetField($key, $value);              };            };          };        };      };    }        function RetrievePopulatedObjects($page_num = 0) {      if ($page_num > 0) {        $items_per_page = $this->items_per_page;        # Calculate start and end limits from page number.        $start_lim = ($items_per_page * ($page_num - 1));        $end_lim = ($start_lim + $items_per_page) - 1;          if ($end_lim > ($this->item_count-1)) {            $end_lim = $this->item_count - 1;          };              } else {        $start_lim = 0;        $end_lim = $this->item_count - 1;      };      $return_array = array();      $counter = 0;      for ($i=$start_lim; $i<=$end_lim; $i++) {        $return_array[$counter] = $this->obj_array[$i];        $counter++;      };      return($return_array);    }  }?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -