<?php $pageCount = 9;//总页数
$pageNow = 3;//用户输入的页数
$i = 3;//显示的页数
$j = $pageCount/$i; //可以滚动的次数
$arr=array() ;
//控制滚动的次数
for($k=0;$k<$j;$k++) {
//控制翻页
if($pageNow==3*$k) { for($e=($k*3)+1;$e<=3*($k+1);$e++) {
$arr[] = $e;
//echo $e;
}
//echo "</br>";
}else {
//输出当前显示页数
for($a=0;$a<$i;$a++) {
$arr[$a];
}
}
}?>
帮忙给看下,那里出问题了。
仅供参考:class Centpage{
var $page; //centpage
function centPages($pageSize,$sumCount){
//compute startRow and startPage
$page = null;
global $page;
if (isset ($_GET['page'])) {
$page = $_GET['page'];
} else {
$page = 1;
}
$startRow = ($page -1) * $pageSize; //start row //total
if ($sumCount % $pageSize == 0) {
$sumPage = floor($sumCount / $pageSize);
} else {
$sumPage = floor($sumCount / $pageSize) + 1;
} $prePage = $page -1; //previous
$nextPage = $page +1; //next //get reguest way
$url = $_SERVER['REQUEST_URI'];
$urlArray = parse_url($url);
$url =$urlArray['path']; $arrPages = array("page" => $page,"startRow" => $startRow,"previous" => $prePage,"next" => $nextPage,
"total" => $sumCount,"sumPage" => $sumPage,"pageSize" => $pageSize,"url" => $url);
return $arrPages;
}}
$pageNum = 3;//显示的页码数
$pageNow = $_GET['page'] ? $_GET['page'] : 1;//用户输入的页数$pageStart = floor($pageNow / $pageNum) * $pageNum + 1; //显示的起始页码
$pageEnd = $pageStart + $pageNum;//显示的终止页码+1for($i=$pageStart; $i<$pageEnd; $i++) {
echo " [<a href=?page=$i>$i</a>] ";
}
<< [1] [2] [3] >>
当点击">>"后,$page = $page+3,然后跳转回页面的话,就显示:
<< [4] [5] [6] >>
这样可行否?
这需要js 或者jquery才能满足你的滚过来 滚过去了
$pageNum = 3;//显示的页码数
$pageNow = $_GET['page'] ? $_GET['page'] : 1;//用户输入的页数
if( $pageNow == $pageCount ) $pageNow = 1; //循环滚动,加上这句$pageStart = floor($pageNow / $pageNum) * $pageNum + 1; //显示的起始页码
$pageEnd = $pageStart + $pageNum;//显示的终止页码+1for($i=$pageStart; $i<$pageEnd; $i++) {
echo " [<a href=?page=$i>$i</a>] ";
}
// 建立数据库连接
$link = mysql_connect("localhost", "mysql_user", "mysql_password")
or die("Could not connect: " . mysql_error());
// 获取当前页数
if( isset($_GET['page']) ){
$page = intval( $_GET['page'] );
}
else{
$page = 1;
}
// 每页数量
$PageSize = 10;
// 获取总数据量
$sql = "select count(*) as amount from table";//count(*)的内容保存在amount里
$result = mysql_query($sql);
$row = mysql_fetch_row($result);
$amount = $row['amount'];
// 记算总共有多少页
if( $amount ){
if( $amount < $page_size ){ $page_count = 1; } //如果总数据量小于$PageSize,那么只有一页
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>';
}
// 获取数据,以二维数组格式返回结果
if( $amount ){
$sql = "select * from table order by id desc limit ". ($page-1)*$page_size .", $page_size";//limit 第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目
$result = mysql_query($sql); while ( $row = mysql_fetch_row($result) ){
$rowset[] = $row;
}
}else{
$rowset = array();
}
// 没有包含显示结果的代码,那不在讨论范围,只要用foreach就可以很简单的用得到的二维数组来显示结果
?>