PHP学习实例—6(完美分页类)
来源:互联网 发布:js水泥防水涂料 编辑:程序博客网 时间:2024/06/10 18:28
主要是实现了分页类的一些css特效,前面照着网上写的分页类,但是效果一直不怎么好,今天花了点时间去修饰了下,不过感觉上还是比较水。。。
分页类 page.class.php
<html><head> <style> #contains1 { width: 850px; margin: 5px auto; } #contains12 { margin: 5px auto; width: 410px; float: left; } #contains123 { width: 440px; margin: 5px auto; float: left; }.special {display: block;float: left;text-align: center;margin-left: 10px;width: 30px;border: 1px solid black;margin-left: 2px;text-align: center;text-decoration: none;} .special:hover {background: #0F6;}#a2 { width: 30px;background: #0F0;margin-left: 2px;text-align: center;text-decoration: none;background: #CF0;}</style></head><?phpclass Page { private $total; //记录总数private $listRows; //每页显示行数private $limit; //限定条件private $uri; //获取地址private $pageNum; //最多能分几页private $config = array("header"=>"记录", "prev"=>"<<", "next"=>">>", 'first'=>"首页", "last"=>"尾页");private $listNum = 6; //数字衔接public function __construct($total, $listRows = 10) { //构造函数 $this->total = $total;$this->listRows = $listRows; $this->uri = $this->getUri();$this->page = !empty($_GET["page"])?$_GET["page"]:1; //当不能取到page值的时候就为首页1 否则为当前page值 $this->pageNum = ceil($this->total/$this->listRows);$this->limit = $this->setLimit();//var_dump($this);}private function setLimit() {return "Limit ".($this->page-1)*$this->listRows.", {$this->listRows}"; //当前页数减一乘以每页显示的数目}private function getUri() { //如何获取uri$url = $_SERVER["REQUEST_URI"].(strpos($_SERVER["REQUEST_URI"], '?')?'':"?"); //在后面加了一个问号//获取地址栏上的地址 如果传了page则 不改变 如果没有则需要加个?方便传值$parse = parse_url($url);//将地址栏分成两部分//print_r($parse);if (isset($parse["query"])) { //当存在传值的page的情况 parse_str($parse['query'],$params);unset($params["page"]);//先删除//print_r($params) $url = $parse['path'].'?'.http_build_query($params);}return $url;}private function __get($args) {if ($args == 'limit') return $this->limit;else return null;}private function start() { if ($this->total == 0) return 0;else return ($this->page - 1) * $this->listRows + 1;}private function end() { return min($this->page*$this->listRows, $this->total);}private function first() {if ($this->page == 1) $html .= '';else $html .= " <a class='special' href='{$this->uri}&page=1'>{$this->config["first"]}</a> ";return $html;}private function prev() {if ($this->page == 1) {$this->page == 1; $html .= " <a class='special' href='{$this->uri}&page=".($this->page)."'>{$this->config["prev"]}</a> ";}else $html .= " <a class='special' href='{$this->uri}&page=".($this->page - 1)."'>{$this->config["prev"]}</a> ";return $html;}private function pageList() {$linkPage = "";$inum = floor($this->listNum / 2);for ($i = $inum; $i >= 1; $i--) { $page = $this->page - $i;if ($page < 1) continue;$linkPage .= " <a class='special' href='{$this->uri}&page={$page}'>{$page}</a> ";}$linkPage .= " <a class='special' id='a2'>{$this->page}</a> ";for ($i = 1; $i < $inum; $i++) { $page = $this->page + $i;if ($page <= $this->pageNum) $linkPage .= " <a class='special' href='{$this->uri}&page={$page}'>{$page}</a> ";else break;}//$linkPage .= '</div>';return $linkPage;}private function next() {if ($this->page == $this->pageNum) {$this->page = $this->pageNum; $html .= " <a class='special' href='{$this->uri}&page=".($this->page)."'>{$this->config["next"]}</a> ";}else $html .= " <a class='special' href='{$this->uri}&page=".($this->page + 1)."'>{$this->config["next"]}</a> ";return $html;}private function last() {if ($this->page == $this->pageNum) $html .= '';else $html .= " <a class='special' href='{$this->uri}&page=$this->pageNum'>{$this->config["last"]}</a> ";return $html;}function fpage() {$html .= "<div id='contains1'>";$html .="<div id='contains12'>"; $html .= " <a>共有<b>{$this->total}</b>{$this->config['header']}</a> ";$html .= " <a>本页显示<b>".($this->end() - $this->start()+1)."</b>条,本页<b>{$this->start()}-{$this->end()}</b></a> ";$html .= " <a><b>{$this->page}/{$this->pageNum}</b>页</a> ";$html .= '</div>';// $html .= $this->first(); $html .= "<div id='contains123'>";$html .= $this->prev();$html .= $this->pageList();$html .= $this->next();//$html .= $this->last();$html .= "</div>";$html .= "</div>";return $html;}}?></html>用法: index.php
<?php //导入配置文件 require("dbconfig.php"); //链接数据库,选择数据库 $link = mysql_connect(HOST, USER, PASS) or die(数据库连接失败); mysql_select_db(DBNAME, $link); //分页显示内容==================================== $sql = "select * from news"; $result = mysql_query($sql); $total = mysql_num_rows($result); //获取总行数 $num = 5; $page = new Page($total, $num); $sql = "select * from news {$page->limit}"; //计算分页的内容是从几到几 $result = mysql_query($sql); echo $page->fPage(); while ($row = mysql_fetch_assoc($result)) { echo "<tr>"; echo "<td>{$row['title']}</td>"; echo "<td>{$row['keywords']}</td>"; echo "<td>{$row['author']}</td>"; echo "<td>".date("Y-m-d", $row['addtime'])."</td>"; echo "<td>{$row['content']}</td>"; echo "<td> <a href = 'javascript:del({$row['id']})'>删除</a> <a href = 'javascript:update({$row['id']})'>修改</td>"; echo "</tr>"; }
代码不全,大概就是这样,写好了类,然后再用的话感觉特别方便。。不过这个分页类的css属性用的时候还是要自己去修改下,不然可能会出现点问题。。。类里面的显示首页,尾页也可以加上去。不过加了就要在改下属性了。。修改样式的时候记得把面的空格去掉,不然会影响样式。。
0 0
- PHP学习实例—6(完美分页类)
- PHP设计完美分页类
- 细说php完美分页类
- [PHP实例] PHP分页类
- PHP分页代码 PHP分页类 PHP分页实例
- PHP完美分页类的实现
- php封装分页类+分页实例
- PHP 学习 分页类
- php之MySQL完美分页
- PHP 依据 Mysqli 类库打造完美分页
- PHP实例——分页技术
- PHP简单分页实例
- PHP分页实例代码
- PHP分页原理及实例
- PHP+mysql分页设计实例
- 暑假学习PHP——分页原理
- [PHP]分页学习笔记
- PHP学习 简单分页
- MSSQL 行转列
- IOS Xcode5 IB tableView 简单使用
- IndexedDB的理解
- 58、实例 使用jQuery设计滑动显隐切换效果
- 产品经理的主要工作职责
- PHP学习实例—6(完美分页类)
- POJ 3187 Backward Digit Sums
- struts1源码分析-整体概览和核心组件
- 初试DLL注入
- 初探STL之关联容器
- 百度地图的定位笔记
- 女生高考失利7年不出家门 医生称为社交恐惧症
- NYOJ 喷水装置(二)贪心
- 设计模式推荐书籍