function pages($sql, $pagedir, $page = 1, $count, $pagesize = 10) { global $adb; $pagecode = ''; $page = intval($page); $count = intval($count); if (!$count) return ''; $pagecount = ceil($count / $pagesize); if ($page < 1) $page = 1; if ($page > $pagecount) $page = $pagecount; $pageStart = $pagesize * ( $page - 1 ); $pageEnd = $pagesize * $page; $page_end = ( $pageEnd > $count ) ? $count : $pageEnd; if (!empty($count)) $startIndex = $pageStart + 1; else $startIndex = 0; $para_page = 'page'; $pagecode = ''; $pagecode .= "<a href=\"$pagedir&$para_page=1\"><img src=\"../../themes/Sugar/images/start.png\" align=\"absmiddle\" border=\"0\" alt=\"Start\" /></a>"; if ($page > 1) $PreviousPage = $page - 1; else $PreviousPage = 1; $pagecode .= "<a href=\"$pagedir&$para_page=$PreviousPage\"><img src=\"../../themes/Sugar/images/previous.png\" align=\"absmiddle\" border=\"0\" alt=\"Previous\" /></a>"; $pagecode .= "<span class=\"pageNumbers\">( $startIndex - $page_end of $count)</span>"; if ($page < $pagecount) $NextPage = $page + 1; else $NextPage = $pagecount; $pagecode .= "<a href=\"$pagedir&$para_page=$NextPage\"><img src=\"../../themes/Sugar/images/next.png\" align=\"absmiddle\" border=\"0\" alt=\"Next\" /></a>"; $pagecode .= "<a href=\"$pagedir&$para_page=$pagecount\"><img src=\"../../themes/Sugar/images/end.png\" align=\"absmiddle\" border=\"0\" alt=\"End\" /></a> "; $result = array(); $sql .= " LIMIT $pageStart, $pagesize"; $result = $adb->GetArray($sql); return array('pagecode' => $pagecode, 'result' => $result, 'pagecount' => $pagecount); } function ajax_pages($sql, $search_data = array(), $page = 1, $pagesize = 10) { global $adb; $pagecode = ''; $page = intval($page); $count = $adb->GetOne("SELECT count(1) FROM ( $sql ) t"); if (empty($count)) return array(); $pagecount = ceil($count / $pagesize); if ($page < 1) $page = 1; if ($page > $pagecount) $page = $pagecount; $pageStart = $pagesize * ( $page - 1 ); $pageEnd = $pagesize * $page; $page_end = ( $pageEnd > $count ) ? $count : $pageEnd; if (!empty($count)) $startIndex = $pageStart + 1; else $startIndex = 0; $para_page = 'page'; $pagecode = ''; $pagecode .= "<a href='javascript:ajax_page(1, " . json_encode($search_data) . ")'> <img src=\"../../themes/Sugar/images/start.png\" align=\"absmiddle\" border=\"0\" alt=\"Start\" /> </a>"; if ($page > 1) $PreviousPage = $page - 1; else $PreviousPage = 1; $pagecode .= "<a href='javascript:ajax_page($PreviousPage, " . json_encode($search_data) . ")'> <img src=\"../../themes/Sugar/images/previous.png\" align=\"absmiddle\" border=\"0\" alt=\"Previous\" /> </a>"; $pagecode .= "<span class=\"pageNumbers\">( $startIndex - $page_end of $count)</span>"; if ($page < $pagecount) $NextPage = $page + 1; else $NextPage = $pagecount; $pagecode .= "<a href='javascript:ajax_page($NextPage, " . json_encode($search_data) . ")'> <img src=\"../../themes/Sugar/images/next.png\" align=\"absmiddle\" border=\"0\" alt=\"Next\" /> </a>"; $pagecode .= "<a href='javascript:ajax_page($pagecount, " . json_encode($search_data) . ")'> <img src=\"../../themes/Sugar/images/end.png\" align=\"absmiddle\" border=\"0\" alt=\"End\" /> </a> "; $result = array(); $sql .= " LIMIT $pageStart, $pagesize"; $result = $adb->GetArray($sql); return array('pagecode' => $pagecode, 'result' => $result, 'pagecount' => $pagecount); } function ajax_pages2($sql, $search_data = array(), $page = 1, $pagesize = 10, $pagelen = 10) { global $adb; $pagecode = ''; //定義變量,存放分頁生成的HTML $page = intval($page); //避免非數字頁碼 $count = $adb->GetOne("SELECT count(1) FROM ( $sql ) t"); if (!$count) return array(); //總記錄數爲零返回空數組 $pagecount = ceil($count / $pagesize); //計算總分頁 //處理頁碼合法性 if ($page < 1) $page = 1; if ($page > $pagecount) $page = $pagecount; //計算查詢偏移量 $offset = $pagesize * ($page - 1); //頁碼範圍計算 $init = 1; //起始頁碼數 $max = $pagecount; //結束頁碼數 $pagelen = ($pagelen % 2) ? $pagelen : $pagelen + 1; //頁碼個數 $pageoffset = ($pagelen - 1) / 2; //頁碼個數左右偏移量 $pagecode .= "<span>$page/$pagecount</span>"; //第幾頁,共幾頁 if ($page != 1) { $pagecode .= "<span> <a href='javascript:ajax_page(" . ($page - 1) . ", " . json_encode($search_data) . ")'>Previous</a> </span>"; //上一頁 } //分頁數大於頁碼個數時能夠偏移 if ($pagecount > $pagelen) { //若是當前頁小於等於左偏移 if ($page <= $pageoffset) { $init = 1; $max = $pagelen; } else {//若是當前頁大於左偏移 //若是當前頁碼右偏移超出最大分頁數 if ($page + $pageoffset >= $pagecount + 1) { $init = $pagecount - $pagelen + 1; } else { //左右偏移都存在時的計算 $init = $page - $pageoffset; $max = $page + $pageoffset; } } } //生成html for ($i = $init; $i <= $max; $i++) { if ($i == $page) { $pagecode.="<span>$i</span>"; } else { $pagecode.="<span><a href='javascript:ajax_page($i, " . json_encode($search_data) . ")'>$i</a></span>"; } } if ($page != $pagecount) { $pagecode.="<span><a href='javascript:ajax_page(" . ($page + 1) . ", " . json_encode($search_data) . ")'>Next</a></span>"; //下一頁 } $sql = $sql . ' LIMIT ' . $offset . ',' . $pagesize; $result = $adb->GetArray($sql); if (empty($result)) { return false; } return array('pagecode' => $pagecode, 'result' => $result); }