当前位置: 首页 > 图文教程 > 网络编程 > PHP > mysql+php分页类(已测)

PHP
PHP 开发环境的选择、建立及使用(5)
PHP 开发环境的选择、建立及使用(6)
PHP 开发环境的选择、建立及使用(7)
PHP 开发环境的选择、建立及使用(8)
PHP 开发环境的选择、建立及使用(9)
Win2003下APACHE PHP5 MYSQL4 PHPMYADMIN 的简易安装配置
PHP新手上路(八) 文件上传
PHP新手上路(九) 投票系统
PHP新手上路(十) 简易banner动态更替
PHP新手上路(十一) 数据库链接
PHP新手上路(十二)使用PHP来操作Oracle数据库
PHP新手上路(十三)PHP资源
PHP新手上路(十四) 其他杂项
session全教程(一)
session全教程(二)
session全教程(三)
PHP编码规范
第十五节--Zend引擎的发展 -- Classes and Objects in PHP5 [15]
第十四节--命名空间 -- Classes and Objects in PHP5 [14]
第十二节--类的自动加载 -- Classes and Objects in PHP5 [12]

PHP 中的 mysql+php分页类(已测)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 233 ::
收藏到网摘: n/a

三个参数。 mysql_query()的结果, url变量page, 您要的每页记录数 例子在这个文件底部 淡水河边整理测试

复制代码 代码如下:

<?php
/*
mysql_pager.class.php
三个参数。 mysql_query()的结果, url变量page, 您要的每页记录数
例子在这个文件底部
淡水河边整理测试
*/
class mysql_pager {
// define properties
var $page;
var $result;
var $results_per_page = 3;
var $total_pages;
/*
Define the methods
下面是构造函数,和类同名(>php4)
需要查询的结果句柄,当前页码,每页记录数
like: $f->mysql_pager($result, 1, 15);
*/
function mysql_pager( $result, $current_page, $results_per_page ) {
if(!$result){
echo "<div align=center>数据库未运行,结果集错误</div>\n";
return;
}
$this->result = $result;
if(!$current_page || $current_page < 0)
$this->page = 1;
else $this->page = $current_page;
if(!emptyempty($results_per_page))
$this->results_per_page = $results_per_page;
$numrows = @mysql_num_rows($this->result);
if(!$numrows) {
echo "<div align=center>查询结果为空.</div>\n";
return;
}
$this->total_pages = ceil($numrows / $this->results_per_page);
}
/*
下面是打印内容的函数,可以不用,也可以根据自己的需要扩展
这里只是打印出id
*/
function print_paged_results() {
echo "<table border=0 align=center>\n";
$start = ($this->page - 1) * $this->results_per_page;
mysql_data_seek($this->result, $start);
$x = 0;
for($i = 1; $i <= $this->results_per_page && $row = @mysql_fetch_array($this->result); $i++) {
if($x++ & 1) $bgcolor = "#F2F2FF";
else $bgcolor = "#EEEEEE";
echo "<tr bgcolor=$bgcolor><td>". $row["id"] . "</td></tr>";
// 编辑这部分输出任何您想要的HTML
}
echo "</table>\n";
}
/*
下面是打印页码和链接的函数
在我们需要显示页码的地方调用
*/
function print_navigation() {
global $PHP_SELF;
echo "<div align=center>";
for($i = 1; $i <= $this->total_pages; $i++) { #loop to print << 1 2 3... $total_pages >>
if($i == 1 && $this->page > 1) #Prints the << first to goto the previous page (not on page 1)
echo "<a href=\"$PHP_SELF?page=".($this->page - 1)."\" onMouseOver=\"status="Previous Page";return true;\" onMouseOut=\"status=" ";return true;\">?</a>";
if($i == $this->page) #Doesn"t print a link itself, just prints page number
echo "<font color=\"#ff3333\"> $i </font>";
if($i != $this->page) #Other links that aren"t this page go here
echo "<a href=\"$PHP_SELF?page=$i\" onMouseOver=\"status="Go to Page $i";return true;\" onMouseOut=\"status=" ";return true;\"> $i </a>";
if($i == $this->total_pages && $this->page != $this->total_pages) # Link for next page >> (not on last page)
echo "<a href=\"$PHP_SELF?page=".($this->page + 1)."\" onMouseOver=\"status="Go to the Next Page";return true;\" onMouseOut=\"status=" ";return true;\">?</a>";
}
echo "</div>\n";
}
}
/*
mysql_connect($server, $uname, $pass );
mysql_select_db("$db");
$result= @mysql_query("Select * FROM table");
$p = new mysql_pager( $result, $page=$_GET["page"], 10 );
$p->print_navigation();
$p->print_paged_results();
$p->print_navigation();
*/
?>