需要请求时携带页码参数,也就是客户端get或者post请求时携带的页码参数。剩余的功能与做页面时分页一样。如果需要数据库查询的话,limit实现。比如:query($sql);略
九台网站建设公司创新互联,九台网站设计制作,有大型网站制作公司丰富经验。已为九台1000+提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的九台做网站的公司定做!
?php
/*下面的代码是我测试用的, 你可以删除*/
/**
* 看你写的我蛋疼,以下代码我没试,你试试,有问题了自己改改就好
*/
#如果接收到的页数1,定义为1 当前页 已经被审核和检查过的,比如int,0,totalPage
$currentPage = $p1?1:$p;
//上一页
$lastPage = $currentPage-11 ? 1 : $currentPage-1;
#底部分页要显示多少页
$needelPage = 10;
#总页数,
$totalPage = 100;
//下一页
$nextPage = $currentPage+1$totalPage ? $totalPage : $currentPage+1;
#计算分页的开始和结束
if($totalPage$needelPage $currentPage$needelPage){
//计算要显示的最后一页
$endPage = $currentPage+$needelPage $totalPage ? $totalPage : $currentPage+$needelPage;
} else {
//总页数是否设定的要显示页数
$endPage = $totalPage$needelPage ? $needelPage : $totalPage;
}
#要循环开始的第一页
$bPage = $currentPage-$needelPage 1 ? 1 : $currentPage-$needelPage;
if($currentPage1)
?
a class=pix-navi-page href="index.php?p=?php echo $lastPage;?"上一页/a !--显示上一页--
?php
}
for ($bPage;$bPage=$endPage;$bPage++) { //循环显示出页面
?
!-- 这一行你写错了 --
a class=pix-navi-page href="index.php?p=?php echo $bPage;?"?php $bPage==$currentPage echo' class="this"';??php echo $bPage ;?/a
?php
}
if ($currentPage$totalPage) { //如果page小于总页数,显示下一页链接
?
a class=pix-navi-page href="index.php?p=?php echo $nextPage;?"下一页/a
?php
}
?
写SQL语句就好了,用top 100不就完了。。然后分页程序还是一样,只是记录集不同而已
做一个分页按钮,上面是页数,传的值就是页数page,如1,2,3,页面用get判断是否收到页数,没有就是1,有就按下面方式进行:
totalPage=4000/100;//总页数
currentPage=Get['page'];//获取当前页
if($page==null){
$page=1;
}
nextPage=$page+1;
if($page1){
previousPage=$page-1;
}
//当前页数据
for($i=(page-1)*100+1;ipage;$++){
//具体操作
}
这个得用程序去判断,根据每页显示的记录条数和记录总数做处理,给你个思路吧。
function getTotalPagesStr ( $total ,$maxPageItems ){
$totalPages = 0;
if ( $total % $maxPageItems == 0 ){
$totalPages = $total/$maxPageItems ;
if ( $totalPages == 0 )
$totalPages = 1;
}
else{
$totalPages = (int)($total/$maxPageItems) + 1 ;
}
return 'span共'.$total.'条记录,'.$totalPages.'页/span';
}
function getTotalPages ( $total ,$maxPageItems ){
$totalPages = 0;
if ( $total % $maxPageItems == 0 ){
$totalPages = $total/$maxPageItems ;
if ( $totalPages == 0 )
$totalPages = 1;
}
else{
$totalPages = (int)($total/$maxPageItems) + 1 ;
}
return $totalPages;
}
function getPageUrl ( $page ){
$url = $_SERVER['PHP_SELF'] ;
$i = 0;
$queryStr = '';
foreach ($_GET as $key=$value)
{
if ($key != 'page'){
if ( $i == 0 ) {
if ( is_array($value) ){
$j = 0;
foreach ( $value as $simpleValue ){
if ( $j == 0 ){
$queryStr = $queryStr.'?'.$key.'[]='.$simpleValue;
}
else {
$queryStr = $queryStr.''.$key.'[]='.$simpleValue;
}
$j ++ ;
}
}
else {
$queryStr = $queryStr.'?'.$key.'='.$value;
}
}
else {
if ( is_array($value ) ){
foreach ( $value as $simpleValue ){
$queryStr = $queryStr.''.$key.'[]='.$simpleValue;
}
}
else {
$queryStr = $queryStr.''.$key.'='.$value;
}
}
$i ++ ;
}
}
foreach ($_POST as $key=$value)
{
if ($key != 'page' $key !='submit'){
if ( $i == 0 ) {
if ( is_array($value) ){
$j = 0;
foreach ( $value as $simpleValue ){
if ( $j == 0 ){
$queryStr = $queryStr.'?'.$key.'[]='.$simpleValue;
}
else {
$queryStr = $queryStr.''.$key.'[]='.$simpleValue;
}
$j ++ ;
}
}
else {
$queryStr = $queryStr.'?'.$key.'='.$value;
}
}
else {
if ( is_array($value ) ){
foreach ( $value as $simpleValue ){
$queryStr = $queryStr.''.$key.'[]='.$simpleValue;
}
}
else {
$queryStr = $queryStr.''.$key.'='.$value;
}
}
$i ++ ;
}
}
if ($i != 0 ){
return $url.$queryStr.'page='.$page;
}
return $url.'?page='.$page;
}
function getPageDisplay ( $total ,$maxPageItems , $currentPage , $maxShowPages ,
$pageSeparator ){
$totalPages = getTotalPages ( $total ,$maxPageItems );
$pageDispayStr = '';
$ppage = 0 ;
$startPage = 0;
$endPage = 0;
if ( $currentPage % $maxShowPages == 0 )
$ppage = (int) ($currentPage/$maxShowPages) - 1 ;
else
$ppage = (int) ($currentPage/$maxShowPages) ;
$startPage = $ppage * $maxShowPages + 1;
if ( $totalPages = ( $ppage + 1 )*$maxShowPages ){
$endPage = $totalPages;
}
else{
$endPage = ( $ppage + 1 )*$maxShowPages ;
}
if ( $totalPages $maxShowPages ){
if ( $currentPage == 1 ){
$pageDispayStr = $pageDispayStr.'span[第一页/上一页]/span';
}
else{
$pageDispayStr = $pageDispayStr.'[a href=\''.getPageUrl (1 ).'\' 第一页/a/';
$pageDispayStr = $pageDispayStr.'a href=\''.getPageUrl ($currentPage-1 ).'\' 上一页/a]';
}
}
if ( $startPage == 1 ){
$pageDispayStr = $pageDispayStr.'span/span';
}
else{
$pageDispayStr = $pageDispayStr.' a href=\''.getPageUrl ($startPage-1 ).'\' /a ';
}
for ( $i = $startPage ; $i = $endPage ; $i ++ ){
if ( $i != $currentPage ){
$pageDispayStr = $pageDispayStr.'a href=\''.getPageUrl ($i ).'\' '.$i.'/a';
if ( $i != $endPage ){
$pageDispayStr = $pageDispayStr.$pageSeparator;
}
$pageDispayStr = $pageDispayStr.' ';
}
else {
$pageDispayStr = $pageDispayStr.'span class="current"'.$i.'/span' ;
if ( $i != $endPage ){
$pageDispayStr = $pageDispayStr.$pageSeparator;
}
$pageDispayStr = $pageDispayStr.' ';
}
}
if ( $endPage == $totalPages ){
$pageDispayStr = $pageDispayStr.' span/span ';
}
else{
$pageDispayStr = $pageDispayStr.'a href=\''.getPageUrl ( $endPage + 1).'\' /a ';
}
if ( $totalPages $maxShowPages ){
if ( $currentPage == $totalPages ){
$pageDispayStr = $pageDispayStr.'span[下一页/最后一页]/span';
}
else{
$pageDispayStr = $pageDispayStr.'[a href=\''.getPageUrl ($currentPage + 1 ).'\' 下一页/a';
$pageDispayStr = $pageDispayStr.'/a href=\''.getPageUrl ( $totalPages ).'\' 最后一页/a]';
}
}
return getTotalPagesStr ( $total ,$maxPageItems ).$pageDispayStr;
}
/*
总数据条数 $total;
每页数据条数 $perpage;
当前页 $page;
总页数 $cnt = ceil($total/$perpage); ceil函数+1取整.
在$page页,说明前面已经过了($page-1)*$perpage条数据
从($page-1)*$perpage+1开始取数据
分页导航思路:
循环在当前页的前后加“a href=""[]/a”,使其效果为[2][3][4]5[6][7][8]
以下是分页导航类的代码
*/
class PageTool {
protected $total = 0;
protected $perpage = 6;
protected $page = 1;
public function __construct($total,$page=false,$perpage=false) {
$this-total = $total;
if($perpage) {
$this-perpage = $perpage;
}
if($page) {
$this-page = $page;
}
}
// 创建分页导航
public function show() {
$cnt = ceil($this-total/$this-perpage); // 得到总页数
$uri = $_SERVER['REQUEST_URI'];
$parse = parse_url($uri);
$param = array();
if(isset($parse['query'])) {
parse_str($parse['query'],$param);
}
// 不管$param数组里,有没有page单元,都unset一下,确保没有page单元,
// 即保存除page之外的所有单元
unset($param['page']);
$url = $parse['path'] . '?';
if(!empty($param)) {
$param = http_build_query($param);
$url = $url . $param . '';
}
// 计算页码导航
$nav = array();
$nav[0] = 'span class="page_now"' . $this-page . '/span';
for($left = $this-page-1,$right=$this-page+1;($left=1||$right=$cnt)count($nav) = 5;) {
if($left = 1) {
array_unshift($nav,'a href="' . $url . 'page=' . $left . '"[' . $left . ']/a');
$left -= 1;
}
if($right = $cnt) {
array_push($nav,'a href="' . $url . 'page=' . $right . '"[' . $right . ']/a');
$right += 1;
}
}
return implode('',$nav);
}
}
//测试分页导航
$page = $_GET['page']?$_GET['page']:1;// ?page=5
$p = new PageTool(100,$page,6); //数据总数100条,每页6条,当前第5页
echo $p-show();//效果为[2][3][4]5[6][7][8]