PHP分頁類
阿新 • • 發佈:2018-05-14
utf-8 conn function boot 素材 other roo span AC
<?php /* * ********************************************* * @類名: page * @參數: $myde_total - 總記錄數 * $myde_size - 一頁顯示的記錄數 * $myde_page - 當前頁 * $myde_url - 獲取當前的url * @功能: 分頁實現 * @作者: 宋海閣 */ class page { private $myde_total; //總記錄數 private $myde_size; //一頁顯示的記錄數 private $myde_page; //當前頁 private $myde_page_count; //總頁數 private $myde_i; //起頭頁數 private $myde_en; //結尾頁數 private $myde_url; //獲取當前的url /* * $show_pages * 頁面顯示的格式,顯示鏈接的頁數為2*$show_pages+1。 * 如$show_pages=2那麽頁面上顯示就是[首頁] [上頁] 1 2 3 4 5 [下頁] [尾頁] */ private $show_pages; public function __construct($myde_total = 1, $myde_size = 1, $myde_page = 1, $myde_url, $show_pages = 2) { $this->myde_total = $this->numeric($myde_total); $this->myde_size = $this->numeric($myde_size); $this->myde_page = $this->numeric($myde_page); $this->myde_page_count = ceil($this->myde_total / $this->myde_size); $this->myde_url = $myde_url; if ($this->myde_total < 0) $this->myde_total = 0; if ($this->myde_page < 1) $this->myde_page = 1; if ($this->myde_page_count < 1) $this->myde_page_count = 1; if ($this->myde_page > $this->myde_page_count) $this->myde_page = $this->myde_page_count; $this->limit = ($this->myde_page - 1) * $this->myde_size; $this->myde_i = $this->myde_page - $show_pages; $this->myde_en = $this->myde_page + $show_pages; if ($this->myde_i < 1) { $this->myde_en = $this->myde_en + (1 - $this->myde_i); $this->myde_i = 1; } if ($this->myde_en > $this->myde_page_count) { $this->myde_i = $this->myde_i - ($this->myde_en - $this->myde_page_count); $this->myde_en = $this->myde_page_count; } if ($this->myde_i < 1) $this->myde_i = 1; } //檢測是否為數字 private function numeric($num) { if (strlen($num)) { if (!preg_match("/^[0-9]+$/", $num)) { $num = 1; } else { $num = substr($num, 0, 11); } } else { $num = 1; } return $num; } //地址替換 private function page_replace($page) { return str_replace("{page}", $page, $this->myde_url); } //首頁 private function myde_home() { if ($this->myde_page != 1) { return "<a href=‘" . $this->page_replace(1) . "‘ title=‘首頁‘>首頁</a>"; } else { return "<p>首頁</p>"; } } //上一頁 private function myde_prev() { if ($this->myde_page != 1) { return "<a href=‘" . $this->page_replace($this->myde_page - 1) . "‘ title=‘上一頁‘>上一頁</a>"; } else { return "<p>上一頁</p>"; } } //下一頁 private function myde_next() { if ($this->myde_page != $this->myde_page_count) { return "<a href=‘" . $this->page_replace($this->myde_page + 1) . "‘ title=‘下一頁‘>下一頁</a>"; } else { return"<p>下一頁</p>"; } } //尾頁 private function myde_last() { if ($this->myde_page != $this->myde_page_count) { return "<a href=‘" . $this->page_replace($this->myde_page_count) . "‘ title=‘尾頁‘>尾頁</a>"; } else { return "<p>尾頁</p>"; } } //輸出 public function myde_write($id = ‘page‘) { $str = "<div id=" . $id . ">"; $str.=$this->myde_home(); $str.=$this->myde_prev(); if ($this->myde_i > 1) { $str.="<p class=‘pageEllipsis‘>...</p>"; } for ($i = $this->myde_i; $i <= $this->myde_en; $i++) { if ($i == $this->myde_page) { $str.="<a href=‘" . $this->page_replace($i) . "‘ title=‘第" . $i . "頁‘ class=‘cur‘>$i</a>"; } else { $str.="<a href=‘" . $this->page_replace($i) . "‘ title=‘第" . $i . "頁‘>$i</a>"; } } if ($this->myde_en < $this->myde_page_count) { $str.="<p class=‘pageEllipsis‘>...</p>"; } $str.=$this->myde_next(); $str.=$this->myde_last(); $str.="<p class=‘pageRemark‘>共<b>" . $this->myde_page_count . "</b>頁<b>" . $this->myde_total . "</b>條數據</p>"; $str.="</div>"; return $str; } } ?>
配置項
<?php $host="localhost"; $db_user="root"; $db_pass="root"; $db_name="demo"; $timezone="Asia/Shanghai"; $link=mysql_connect($host,$db_user,$db_pass); mysql_select_db($db_name,$link); mysql_query("SET names UTF8"); header("Content-Type: text/html; charset=utf-8"); ?>
demo
<?php include_once("config.php"); require_once(‘page.class.php‘); //分頁類 $showrow = 10; //一頁顯示的行數 $curpage = empty($_GET[‘page‘]) ? 1 : $_GET[‘page‘]; //當前的頁,還應該處理非數字的情況 $url = "?page={page}"; //分頁地址,如果有檢索條件 ="?page={page}&q=".$_GET[‘q‘] //省略了鏈接mysql的代碼,測試時自行添加 $sql = "SELECT * FROM article"; $total = mysql_num_rows(mysql_query($sql)); //記錄總條數 if (!empty($_GET[‘page‘]) && $total != 0 && $curpage > ceil($total / $showrow)) $curpage = ceil($total_rows / $showrow); //當前頁數大於最後頁數,取最後一頁 //獲取數據 $sql .= " LIMIT " . ($curpage - 1) * $showrow . ",$showrow;"; $query = mysql_query($sql); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>演示:PHP簡單漂亮的分頁類</title> <meta name="keywords" content="php分頁類" /> <meta name="description" content="本文介紹一款原生的PHP分頁類,分頁樣式有點類似bootstrap。" /> <link rel="stylesheet" type="text/css" href="http://www.sucaihuo.com/jquery/css/common.css" /> <style type="text/css"> p{margin:0} #page{ height:40px; padding:20px 0px; } #page a{ display:block; float:left; margin-right:10px; padding:2px 12px; height:24px; border:1px #cccccc solid; background:#fff; text-decoration:none; color:#808080; font-size:12px; line-height:24px; } #page a:hover{ color:#077ee3; border:1px #077ee3 solid; } #page a.cur{ border:none; background:#077ee3; color:#fff; } #page p{ float:left; padding:2px 12px; font-size:12px; height:24px; line-height:24px; color:#bbb; border:1px #ccc solid; background:#fcfcfc; margin-right:8px; } #page p.pageRemark{ border-style:none; background:none; margin-right:0px; padding:4px 0px; color:#666; } #page p.pageRemark b{ color:red; } #page p.pageEllipsis{ border-style:none; background:none; padding:4px 0px; color:#808080; } .dates li {font-size: 14px;margin:20px 0} .dates li span{float:right} </style> </head> <body> <div class="head"> <div class="head_inner clearfix"> <ul id="nav"> <li><a href="http://www.sucaihuo.com">首 頁</a></li> <li><a href="http://www.sucaihuo.com/templates">網站模板</a></li> <li><a href="http://www.sucaihuo.com/js">網頁特效</a></li> <li><a href="http://www.sucaihuo.com/php">PHP</a></li> <li><a href="http://www.sucaihuo.com/site">精選網址</a></li> </ul> <a class="logo" href="http://www.sucaihuo.com"><img src="http://www.sucaihuo.com/Public/images/logo.jpg" alt="素材火logo" /></a> </div> </div> <div class="container"> <div class="demo"> <h2 class="title"><a href="http://www.sucaihuo.com/php/223.html">教程:PHP簡單漂亮的分頁類</a></h2> <div class="showData"> <ul class="dates"> <?php while ($row = mysql_fetch_array($query)) { ?> <li> <span><?php echo $row[‘addtime‘] ?></span> <a target="_blank" href="http://www.sucaihuo.com/js"><?php echo $row[‘title‘] ?></a> </li> <?php } ?> </ul> <!--顯示數據區--> </div> <div class="showPage"> <?php if ($total > $showrow) {//總記錄數大於每頁顯示數,顯示分頁 $page = new page($total, $showrow, $curpage, $url, 2); echo $page->myde_write(); } ?> </div> </div> </div> <div class="foot"> Powered by sucaihuo.com 本站皆為作者原創,轉載請註明原文鏈接:<a href="http://www.sucaihuo.com" target="_blank">www.sucaihuo.com</a> </div> <script type="text/javascript" src="http://www.sucaihuo.com/Public/js/other/jquery.js"></script> </body> </html>
PHP分頁類