一.
<?php
// 建立数据库连接
$link = mysql_connect("localhost", "root", "111111")
or die("Could not connect: " . mysql_error());
mysql_select_db("gprs",$link);
mysql_query("SET NAMES gbk");
// 获取当前页数
if( isset($_POST['page']) )//判断是否有下面的表单post来的值
{
$page=$_POST['page'];
}
else if(isset($_GET['page']))//判断是否有get来的值
{
$page = intval( $_GET['page'] );
}
else
{
$page = 1;
}
// 每页数量
$page_size = 3;
// 获取总数据量
$sql = "select count(*) as amount from sms_send";
$result = mysql_query($sql);
$row = mysql_fetch_row($result);
$amount = $row[0];
// 记算总共有多少页
if( $amount )
{
if( $amount < $page_size )//如果总数据量小于$PageSize,那么只有一页
{
$page_count = 1;
}
if( $amount % $page_size ) //取总数据量除以每页数的余数
{
$page_count = (int)($amount / $page_size) + 1; //如果有余数,则页数等于总数据量除以每页数的结果取整再加一
}
else
{
$page_count = $amount / $page_size; //如果没有余数,则页数等于总数据量除以每页数的结果
}
}
else
{
$page_count = 0;
}
// 翻页链接
$page_string = '';
if( $page == 1)
{
$page_string .= '首页|上一页|';
}
else
{
$page_string .= '<a href=?page=1>首页</a>|<a href=?page='.($page-1).'>上一页</a>|';
}
if( ($page == $page_count) || ($page_count == 0) )
{
$page_string .= '下一页|末页';
}
else
{
$page_string .= '<a href=?page='.($page+1).'>下一页</a>|<a href=?page='.$page_count.'>末页</a>';
}
?>
<?php
//截取GB2312中文字符串
function mysubstr($str, $start, $len) {
$tmpstr = "";
$strlen = $start + $len;
for($i = 0; $i < $strlen; $i++) {
if(ord(substr($str, $i, 1)) > 0xa0) {
$tmpstr .= substr($str, $i, 2);
$i++;
} else
$tmpstr .= substr($str, $i, 1);
}
if(strlen($str)>strlen($tmpstr))
{
$tmpstr.='...';
}
return $tmpstr;
}
?>
<!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=gb2312" />
<title>分页显示记录</title>
<script>
setTimeout("self.location.reload();",5000);//每隔5秒自动刷新一次
</script>
</head>
<style type="text/css">
.style1{ position: absolute; left: 5%; top: 220px }
</style>
<body bgcolor="#CCCCCC">
<table width="60%" style="margin-left:5%; margin-top:50px;" rules="all" border="1" bordercolor="#3300FF">
<tr style="margin-bottom:10;">总共<?php echo "<font color='#CC0033'>".$amount."</font>";?>条记录</tr>
<tr>
<td bgcolor="#333333" width="5%"><div align="center" class="title"><font color="#FFFFFF">标志</font></div></td>
<td bgcolor="#333333" width="15%"><div align="center" class="title"><font color="#FFFFFF">手机号码</font></div></td>
<td bgcolor="#333333" width="65%"><div align="center" class="title"><font color="#FFFFFF">短信内容</font></div></td>
<td bgcolor="#333333" width="15%"><div align="center" class="title"><font color="#FFFFFF">接收时间</font></div></td>
</tr>
<?php
$server=$_SERVER['PHP_SELF'];
$start=($page-1)*$page_size;
$res=mysql_query("select targetnumber,content,time,flag from sms_send order by time desc limit $start , $page_size" ,$link);
while($myrow = mysql_fetch_array($res))
{?>
<?php $myrow_q=mysubstr($myrow[1],0,20)?><!--截取10个中文汉字-->
<tr>
<?php echo "<td>".$myrow[3]."</td>"."<td>".$myrow[0]."</td>"."<td>".$myrow_q."</td>"."<td>".$myrow[2]."</td>";?>
</tr>
<?php } ?>
</table>
<table width="60%" style="margin-left:5%;" class="style1">
<tr><td colspan="3" align="center">
<form method="post">
<?php
echo "共"." ".$page_count." "."页(".$page."/".$page_count.")"." ".$page_string;
?>
跳到<input type="text" name="page" value="1" size="2" />页
<input type="submit" value="go" />
</form>
</td></tr></table>
</body>
</html>
二.
<?php
$link=mysql_connect("localhost","root","admin")or die("connect error!");
mysql_select_db("news")or die("select db error!");
$sql="select * from admin_login ";
$result=mysql_query($sql);
$cols=mysql_num_fields($result);//总列数
$total=mysql_num_rows($result);//总条数
$num=10;//每页显示条数
$url="mysql.php";//请求的URL
$cpage=isset($_GET["page"])?$_GET["page"]:1;//当前页
$pagenum=ceil($total/$num);//总页数
$offset=($cpage-1)*$num;//开始去数据的位置
$sql="select * from admin_login limit {$offset},{$num}";
$result=mysql_query($sql);
$start=$offset+1;//开始记录页
$end=($cpage==$pagenum)?$total : ($cpage*$num);//结束记录页
$next=($cpage==$pagenum)? 0:($cpage+1);//下一页
$prev=($cpage==1)? 0:($cpage-1);//前一页
echo '<table align="center" width="800" border="1">';
while($row=mysql_fetch_row($result)){
echo '<tr>';
foreach($row as $col){
echo '<td>'.$col.'</td>';
}
echo '</tr>';
}
echo '<tr><td colspan="'.$cols.'" align="right">';
echo "共<b>$total</b>条记录,本页显示<b>{$start}-{$end}</b> {$cpage}/{$pagenum}";
if($cpage==1)
echo " 首页 ";
else
echo " <a href='{$url}?page=1'>首页</a> ";
if($prev)
echo " <a href='{$url}?page={$prev}'>上一页</a> ";
else
echo " 上一页 ";
if($next)
echo " <a href='{$url}?page={$next}'>下一页</a> ";
else
echo " 下一页 ";
if($cpage==$pagenum)
echo " 尾页 ";
else
echo " <a href='{$url}?page={$pagenum}'>尾页</a> ";
echo '</td></tr>';
echo '</table>';
mysql_close();
?>
效果:
三 分页类
<?php
class Pager
{
var $_perPage; //每一页记录数
var $_totalItems; //总记录数
var $_totalPages; //总共页数
var $_currentPage; // 当前页序号
var $_listStart; //当前头条记录ID
var $_listEnd; //当前最后条记录ID
var $_pageStart; //第一页
var $_pageEnd; //最后页
var $_listPage; //循环显示当前分页列表
var $_pageData; //当前要显示的记录
var $_linkData; //页面传递的变量
var $_startId; //从数据库读出的启始id
function pager($_totalItems, $_perPage, $_linkData)
{
$this->_currentPage = max((int)@$_GET['pageId'], 1); //当前的页序号
$this->_perPage = $_perPage; //每一页记录数
$this->_totalItems = $_totalItems; //总记录数
$this->_totalPages = ceil($this->_totalItems / $this->_perPage); //总页数
$this->_linkData = $_linkData; //传递的变量
$this->_listStart = ($this->_currentPage - 1) * $this->_perPage + 1; //当前头条记录ID
$this->_listEnd = ($this->_currentPage != $this->_totalPages) ? $this->_currentPage * $this->_perPage : $this->_totalItems; //当前最后条记录ID
$this->_startId = $this->_listStart -1; //从数据库读出的启始id
}
function startId() // 从数据库读出的启始id
{
return $this->_startId;
}
function totalItems() // 总记录数
{
return $this->_totalItems;
}
function totalPages() // 总页数
{
return $this->_totalPages;
}
function listStart() // 当前头条记录ID
{
return $this->_listStart;
}
function listEnd() // 当前最后条记录ID
{
return $this->_listEnd;
}
function currentPage() // 当前页
{
return $this->_currentPage;
}
function pageStart() // 第一页
{
return $this->_pageStart = "<a href=" . $_SERVER['PHP_SELF'] . ($this->_linkData) . "&pageId=1><FONT title=首页 face=webdings>9</FONT></a>";
}
function pageEnd() // 最后页
{
return $this->_pageEnd = "<a href=" . $_SERVER['PHP_SELF'] . ($this->_linkData) . "&pageId=" . $this->_totalPages . "><FONT title=尾页 face=webdings>:</FONT></a>";
}
function upPage() // 上一页
{
if ($this->_currentPage > 1 and $this->_currentPage <= $this->_totalPages)
{
$up = $this->_currentPage-1;
return $this->_upPage = "<a href=" . $_SERVER['PHP_SELF'] . ($this->_linkData) . "&pageId=" . $up . "><FONT title=上页 face=webdings>7</FONT></a>";
}
}
function downPage() // 下一页
{
$down = $this->_currentPage + 1;
if ($this->_currentPage < $this->_totalPages)
return $this->_downPage = "<a href=" . $_SERVER['PHP_SELF'] . ($this->_linkData) . "&pageId=" . $down . "><FONT title=下页 face=webdings>8</FONT></a>";
}
function listPage() // 循环显示当前分页列表
{
if ($this->_currentPage <= 5 and $this->_currentPage != "")
{
$start = 1;
if ($this->_totalPages < 10) $end = $this->_totalPages;
else $end = 10;
} elseif (($this->_currentPage + 5) > $this->_totalPages)
{
$start = $this->_currentPage - 5;
$end = $this->_totalPages;
}
else
{
$start = $this->_currentPage - 4;
$end = $this->_currentPage + 5;
}
for($i = $start; $i <= $end; $i++)
{
$this->_listPage .= "<a href=" . $_SERVER['PHP_SELF'] . ($this->_linkData) . "&pageId=" . $i . ">" . $i . "</a> ";
}
return $this->_listPage;
}
function jumpPage() // 跳转
{
$this->_jumpPage = "<table border=0 width=100% class='fonts'><tr><td>跳转 <select name='pageId' style='height=14px' οnchange=\"location='" . $_SERVER['PHP_SELF'] . ($this->_linkData) . "&pageId='+this.value;\">"; //页面跳转
for($i = 1; $i <= $this->_totalPages; $i++)
{
if ($i == $this->_currentPage) $selected = "selected";
$this->_jumpPage .= "<option value='$i' $selected>$i</option>";
unset($selected);
}
return $this->_jumpPage .= "</select> 页</td></tr></table>";
}
}
// /范例
$totalItems = 1100; //总记录
$page = new Pager($totalItems, 20, "?a=b&c=6");
for($i = $page->startId(); $i <= $page->startId() + 20; $i++)
{
$data[] = array($i, $i + 1);
}
echo "当前开始ID:" . $listStart = $page->listStart();
echo "<br>";
echo "当前结束ID:" . $listEnd = $page->listEnd();
echo "<br>";
echo "第一页:" . $pageStart = $page->pageStart();
echo "<br>";
echo "最后页:" . $pageEnd = $page->pageEnd();
echo "<br>";
echo "上一页:" . $upPage = $page->upPage();
echo "<br>";
echo "下一页:" . $downPage = $page->downPage();
echo "<br>";
echo "列表显示:" . $listPage = $page->listPage();
echo "<br>";
echo "跳转页:" . $jumpPage = $page->jumpPage();
echo "<br>";
// print_r($data);
?>