/* * ********************************************* * @类名: 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 $this->myde_total = 0; if ($this->myde_page $this->myde_page = 1; if ($this->myde_page_count $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 $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 $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 "首页 "; } else { return "首页
"; } } //上一页 private function myde_prev() { if ($this->myde_page != 1) { return "上一页 "; } else { return "上一页
"; } } //下一页 private function myde_next() { if ($this->myde_page != $this->myde_page_count) { return "下一页 "; } else { return"下一页
"; } } //尾页 private function myde_last() { if ($this->myde_page != $this->myde_page_count) { return "尾页 "; } else { return "尾页
"; } } //输出 public function myde_write($id = 'page') { $str = "";
$str.=$this->myde_home();
$str.=$this->myde_prev();
if ($this->myde_i > 1) {
$str.="
...
";
}
for ($i = $this->myde_i; $i myde_en; $i++) {
if ($i == $this->myde_page) {
$str.="
$i ";
} else {
$str.="
$i ";
}
}
if ($this->myde_en myde_page_count) {
$str.="
...
";
}
$str.=$this->myde_next();
$str.=$this->myde_last();
$str.="
共" . $this->myde_page_count . " 页" . $this->myde_total . " 条数据
";
$str.="
"; return $str; } } ?>
include_once("config.php"); require_once('page.class.php'); //分页类 $showrow = 3; //一页显示的行数 $curpage = empty($_GET['page']) ? 1 : $_GET['page']; //当前的页,还应该处理非数字的情况 $url = "?page={page}"; //分页地址,如果有检索条件 ="?page={page}&q=".$_GET['q'] //省略了链接mysql的代码,测试时自行添加 $sql = "SELECT id,content,lastdate FROM message"; $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); ?>
演示:PHP简单漂亮的分页类
if ($total > $showrow) {//总记录数大于每页显示数,显示分页 $page = new page($total, $showrow, $curpage, $url, 2); echo $page->myde_write(); } ?>
$host="localhost"; $db_user="root"; $db_pass=""; $db_name="test"; $timez/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"); ?>
以上就介绍了PHP通用分页组件,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
Stellungnahme: Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn