public static function handle($select, $sql, $rsnum) { if (empty(self::$num)) { self::$num = CORE::$cfg["item_num"]; } if (!empty($rsnum) && $rsnum > self::$num) { $offset = 0; list($offset, $oldNum) = explode(',', $select['limit']); self::$all = ceil($rsnum / self::$num); # 總頁數 if (empty(self::$now)) { self::$now = 1; } if (self::$now < 0 || self::$now > self::$all) { self::$now = 1; } self::$start = $limit_start = self::$num * self::$now - self::$num + $offset; # limit 開始資料列數 $new_limit = $limit_start . "," . self::$num; # limit 組合完成 $select['limit'] = $new_limit; $sql_page = DB::select($select); $page = array($sql_page, DB::num($sql_page)); self::row(); } else { self::$now = 1; $page = array($sql, $rsnum); } SESS::write('PAGE', self::$now); return $page; }
public static function dataFetch($tb_name, $sk = false, $fetch = false, $sort = false, $limit = false, $page = false) { list($sql, $rsnum, $select) = self::dataNum($tb_name, $sk, $fetch, $sort, $limit, true); if ($page) { if (is_numeric($page) && $page > 0) { PAGE::$num = $page; } list($sql, $rsnum) = PAGE::handle($select, $sql, $rsnum); } switch ($rsnum) { case 0: break; case 1: self::$data[0] = self::content_handle(DB::fetch($sql), true); break; default: while ($row = DB::fetch($sql)) { $all_row[] = self::content_handle($row, true); } self::$data = $all_row; break; } return $rsnum; }