首页 > 后端开发 > 正文

请问 有人知道怎么 用php 做分页 当在第一页时,“前一页”不显示,当在最后一页时,“后一页”不显示没?

2024-12-20 21:25:33 | 我爱编程网

今天我爱编程网小编整理了请问 有人知道怎么 用php 做分页 当在第一页时,“前一页”不显示,当在最后一页时,“后一页”不显示没?相关信息,希望在这方面能够更好帮助到大家。

本文目录一览:

请问 有人知道怎么 用php 做分页 当在第一页时,“前一页”不显示,当在最后一页时,“后一页”不显示没?

php分页跳转

你这个太麻烦 我给你推荐一个

<?php
class page
{
var $page_name="page";
var $next_page='>';//下一页
var $pre_page='<';//上一页
var $first_page='<<首页';//首页
var $last_page='尾页>>';//尾页
var $pre_bar='<<';//上一分页条
var $next_bar='>>';//下一分页条
var $format_left='';
var $format_right='';
var $page_webmode='';

/**
* private
*
*/
var $pagebarnum=10;//控制记录条的个数。
var $totalpage=0;//总页数
var $nowindex=1;//当前页
var $url="";//url地址头
var $offset=0;

/**
* c*****tructor构造函数
*
* @param array $array['total'],$array['perpage'],$array['nowindex'],$array['url'],$array['ajax']...
*/
function page($array)
{
if(is_array($array)){
if(!array_key_exists('total',$array))$this->error(__FUNCTION__,'need a param of total');
$total=intval($array['total']);
$perpage=(array_key_exists('perpage',$array))?intval($array['perpage']):10;
$nowindex=(array_key_exists('nowindex',$array))?intval($array['nowindex']):'';
$url=(array_key_exists('url',$array))?$array['url']:'';
}else{
$total=$array;
$perpage=10;
$nowindex='';
$url='';
}
if((!is_int($total))||($total<0))$this->error(__FUNCTION__,$total.' is not a positive integer!');
if((!is_int($perpage))||($perpage<=0))$this->error(__FUNCTION__,$perpage.' is not a positive integer!');
if(!empty($array['page_name']))$this->set('page_name',$array['page_name']);//设置pagename
$this->_set_nowindex($nowindex);//设置当前页
$this->_set_url($url);//设置链接地址
$this->totalpage=ceil($total/$perpage);
$this->total=$total;
$this->offset=($this->nowindex-1)*$perpage;
}
/**
* 设定类中指定变量名的值,如果改变量不属于这个类,将throw一个exception
*
* @param string $var
* @param string $value
*/
function set($var,$value)
{
if(in_array($var,get_object_vars($this)))
$this->$var=$value;
else {
$this->error(__FUNCTION__,$var." does not belong to PB_Page!");
}

}
/**
* 获取显示"下一页"的代码
*
* @param string $style
* @return string
*/
function next_page($,$nowindex_)
{
if($this->nowindex<$this->totalpage){
return $this->_get_link($this->_get_url($this->nowindex+1),$this->next_page,$style);
}
return '<span class="'.$nowindex_style.'">'.$this->next_page.'</span>';
}

/**
* 获取显示“上一页”的代码
*
* @param string $style
* @return string
*/
function pre_page($,$nowindex_)
{
if($this->nowindex>1){
return $this->_get_link($this->_get_url($this->nowindex-1),$this->pre_page,$style);
}
return '<span class="'.$nowindex_style.'">'.$this->pre_page.'</span>';
}

/**
* 获取显示“首页”的代码
*
* @return string
*/
function first_page($,$nowindex_)
{
if($this->nowindex==1){
return '<span class="'.$nowindex_style.'">'.$this->first_page.'</span>';
}
return $this->_get_link($this->_get_url(1),$this->first_page,$style);
}

/**
* 获取显示“尾页”的代码
*
* @return string
*/
function last_page($,$nowindex_)
{
if($this->nowindex==$this->totalpage){
return '<span class="'.$nowindex_style.'">'.$this->last_page.'</span>';
}
return $this->_get_link($this->_get_url($this->totalpage),$this->last_page,$style);
}

function nowbar($,$nowindex_)
{
$plus=ceil($this->pagebarnum/2);
if($this->pagebarnum-$plus+$this->nowindex>$this->totalpage)$plus=($this->pagebarnum-$this->totalpage+$this->nowindex);
$begin=$this->nowindex-$plus+1;
$begin=($begin>=1)?$begin:1;
$return='';
for($i=$begin;$i<$begin+$this->pagebarnum;$i++)
{
if($i<=$this->totalpage){
if($i!=$this->nowindex)
$return.=$this->_get_text($this->_get_link($this->_get_url($i),$i,$style));
else
$return.=$this->_get_text('<span class="'.$nowindex_style.'">'.$i.'</span>');
}else{
break;
}
$return.="\n";
}
unset($begin);
return $return;
}
/**
* 获取显示跳转按钮的代码
*
* @return string
*/
function select()
{
$return='<select name="PB_Page_Select" onchange="self.location.href=\''.$this->url.'\'+this.opti*****[this.selectedIndex].value ">';
for($i=1;$i<=$this->totalpage;$i++)
{
if($i==$this->nowindex){
$return.='<option value="'.$i.'" selected>'.$i.'</option>';
}else{
$return.='<option value="'.$i.'">'.$i.'</option>';
}
}
unset($i);
$return.='</select>';
return $return;
}

/**
* 获取mysql 语句中limit需要的值
*
* @return string
*/
function offset()
{
return $this->offset;
}

/**
* 控制分页显示风格(你可以增加相应的风格)
*
* @param int $mode
* @return string
*/
function show($mode=1,$,$nowindex_)
{
switch ($mode)
{
case '1':
$this->next_page='下一页';
$this->pre_page='上一页';
$this->first_page='首页';
$this->last_page='尾页';
return $this->first_page($style,$nowindex_style)." ".$this->pre_page($style,$nowindex_style)." ".$this->next_page($style,$nowindex_style)." ".$this->last_page($style,$nowindex_style).' (当前第<span >'.$this->nowindex.'</span>页 共<span >'.$this->totalpage.'</span>页 <span >'.$this->total.'</span>条记录)';
break;
case '2':
$this->next_page='下一页';
$this->pre_page='上一页';
$this->first_page='首页';
$this->last_page='尾页';
return $this->first_page($style,$nowindex_style)." ".$this->pre_page($style,$nowindex_style)." ".$this->next_page($style,$nowindex_style)." ".$this->last_page($style,$nowindex_style).' 第'.$this->select().'页 (当前第<span >'.$this->nowindex.'</span>页 共<span >'.$this->totalpage.'</span>页 <span >'.$this->total.'</span>条记录)';
break;
case '3':
$this->next_page='下一页';
$this->pre_page='上一页';
$this->first_page='首页';
$this->last_page='尾页';
return $this->pre_page($style,$nowindex_style)." ".$this->nowbar($style,$nowindex_style)." ".$this->next_page($style,$nowindex_style).' (当前第<span >'.$this->nowindex.'</span>页 共<span >'.$this->totalpage.'</span>页 <span >'.$this->total.'</span>条记录)';
break;
case '4':
$this->next_page='下一页';
$this->pre_page='上一页';
return $this->pre_page($style,$nowindex_style)." ".$this->nowbar($style,$nowindex_style)." ".$this->next_page($style,$nowindex_style).' 第'.$this->select().'页 (当前第<span >'.$this->nowindex.'</span>页 共<span >'.$this->totalpage.'</span>页 <span >'.$this->total.'</span>条记录)';
break;
case '5':
$this->next_page='>';
$this->pre_page='<';
$this->first_page='<<';
$this->last_page='>>';
return $this->first_page($style,$nowindex_style)." ".$this->pre_page($style,$nowindex_style)." ".$this->nowbar($style,$nowindex_style)." ".$this->next_page($style,$nowindex_style)." ".$this->last_page($style,$nowindex_style).' (当前第<span >'.$this->nowindex.'</span>页 共<span >'.$this->totalpage.'</span>页 <span >'.$this->total.'</span>条记录)';
break;

case '6':
$pagehtml="<div>";
if($this->nowindex>1)
{
$pagehtml.="<span class=\"pagenum-l\"><a href=\"{$this->_get_url($this->nowindex-1)}\"><img src=\"images/page_up.gif\" /></a></span>";
}
else
{
$pagehtml.="<span class=\"pagenum-l\"><img src=\"images/page_up.gif\" /></span>";
}
$pagehtml.="<span class=\"pagenum-c\">";
$pagehtml.="<table><tr>";

$plus=ceil($this->pagebarnum/2);
if($this->pagebarnum-$plus+$this->nowindex>$this->totalpage)$plus=($this->pagebarnum-$this->totalpage+$this->nowindex);
$begin=$this->nowindex-$plus+1;
$begin=($begin>=1)?$begin:1;
for($i=$begin;$i<$begin+$this->pagebarnum;$i++)
{
if($i<=$this->totalpage){
if($i!=$this->nowindex)
$pagehtml.="<td> <a href=\"{$this->_get_url($i)}\">{$i}</a> </td>";
else
$pagehtml.="<td> {$i} </td>";
}else{
break;
}
$pagehtml.="\n";
}
unset($begin);

$pagehtml.="</tr></table>";
$pagehtml.="</span>";

if($this->nowindex<$this->totalpage)
{
$pagehtml.="<span class=\"pagenum-r\"><a href=\"{$this->_get_url($this->nowindex+1)}\"><img src=\"images/page_down.gif\" /></a></span>";
}
else
{
$pagehtml.="<span class=\"pagenum-r\"><img src=\"images/page_down.gif\" /></span>";
}
$pagehtml.="</div>";
return $pagehtml;

break;

}
}
/*----------------private function (私有方法)-----------------------------------------------------------*/
/**
* 设置url头地址
* @param: String $url
* @return boolean
*/
function _set_url($url="")
{
if($this->page_webmode!="php"&&$url!=""){
$this->url=$url;
}
else{
if(!empty($url)){
//手动设置
$this->url=$url.((stristr($url,'?'))?'&':'?').$this->page_name."=";
}else{
//自动获取
if(empty($_SERVER['QUERY_STRING'])){
//不存在QUERY_STRING时
$this->url=$_SERVER['REQUEST_URI']."?".$this->page_name."=";
}else{
//
if(stristr($_SERVER['QUERY_STRING'],$this->page_name.'=')){
//地址存在页面参数
$this->url=str_replace($this->page_name.'='.$this->nowindex,'',$_SERVER['REQUEST_URI']);
$last=$this->url[strlen($this->url)-1];
if($last=='?'||$last=='&'){
$this->url.=$this->page_name."=";
}else{
$this->url.='&'.$this->page_name."=";
}
}else{
//
$this->url=$_SERVER['REQUEST_URI'].'&'.$this->page_name.'=';
}//end if
}//end if
}//end if
}
}

/**
* 设置当前页面
*
*/
function _set_nowindex($nowindex)
{
if(empty($nowindex)){
//系统获取

if(isset($_GET[$this->page_name])){
$this->nowindex=intval($_GET[$this->page_name]);
}
}else{
//手动设置
$this->nowindex=intval($nowindex);
}
}

/**
* 为指定的页面返回地址值
*
* @param int $pageno
* @return string $url
*/
function _get_url($pageno=1)
{
if($this->page_webmode=="php"||$this->page_webmode==""){
return $this->url.$pageno;
}
else{
return $this->url.(($pageno==1)?"":"_".$pageno).".".$this->page_webmode;
}
}

/**
* 获取分页显示文字,比如说默认情况下_get_text('<a href="">1</a>')将返回[<a href="">1</a>]
*
* @param String $str
* @return string $url
*/
function _get_text($str)
{
return $this->format_left.$str.$this->format_right;
}

/**
* 获取链接地址
*/
function _get_link($url,$text,$){
$':'class="'.$style.'"';
return '<a '.$style.' href="'.$url.'">'.$text.'</a>';
}
/**
* 出错处理方式
*/
function error($function,$errormsg)
{
die('Error in file <b>'.__FILE__.'</b> ,Function <b>'.$function.'()</b> :'.$errormsg);
}
}
?>
调用方法:

<?
include("classpage.php");
$queryrow = $DB->query("SELECT * FROM article where article_sortid='$cls' and type='1' ORDER BY article_id DESC");
$rows=$DB->num_rows($queryrow);
$total=$rows;
$pagesize=15;
$currentRow = empty($_GET['page']) ? 0 : ($_GET['page']-1)* $pagesize;
$queryId = $DB->query("SELECT * FROM article where article_sortid='$cls' and type='1' ORDER BY article_id DESC limit $currentRow,$pagesize");
$iiii=1;
while ($a_array=$DB->fetch_array($queryId)) {
?>
<table width="674" border="0" cellspacing="0" cellpadding="0" height="30px">
<tr>
<td width="54"> </td>
<td width="87" align="center" class="news" >
<?php
if($iiii>10)
{
echo $iiii;
}
else
{
echo '0'.$iiii;
}
?>
</td>
<td width="371" class="news" ><a href="newslist.php?id=<?=$a_array[article_id]?>"><?=$a_array['article_title']?></a></td>
<td width="73" class="news" ><?=$a_array['article_hits']?></td>
<td width="89" class="news" ><?=substr($a_array['article_addtime'],0,10)?></td>

</tr>
</table>
<?php
$iiii++;
}
if ($iiii==1) echo "抱歉,没有搜索到任何信息。";
?>
<table width="720" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="dibu" align="center" valign="top">
<table width="98%" border="0" align="center" cellpadding="0" cellspacing="0">

<tr>
<td width="52%" height="10" align="center"></td>
<td width="48%" align="center"></td>
</tr>
<tr>
<td height="28" colspan="2" align="center" valign="bottom" >
<?php
$page=new page(array('total'=>$total,'perpage'=>$pagesize));
$pagehtml=$page->show(6,"page","curr");
echo $pagehtml;
?>

这个是调用方法
$pagehtml=$page->show(6,"page","curr"); 看到这个没有 里面是6 我调用的是6这种方法显示的 里面可以选择0 ,1, 2, 3, 4, 5, 6, 六中方法分页显示不同 具体的你可以试试 我目前用6的比较多点 呵呵

请问 有人知道怎么 用php 做分页 当在第一页时,“前一页”不显示,当在最后一页时,“后一页”不显示没?

用PHP实现分页显示要求实现和图片一样的功能

希望你能用得上!

<?php
function page($page,$total,$phpfile,$pagesize=10,$pagelen=7){
$pagecode = ’’;//定义变量,存放分页生成的HTML
$page = intval($page);//避免非数字页码
$total = intval($total);//保证总记录数值类型正确
if(!$total) return array();//总记录数为零返回空数组
$pages = ceil($total/$pagesize);//计算总分页
//处理页码合法性
if($page<1) $page = 1;
if($page>$pages) $page = $pages;
//计算查询偏移量
$offset = $pagesize*($page-1);
//页码范围计算
$init = 1;//起始页码数
$max = $pages;//结束页码数
$pagelen = ($pagelen%2)?$pagelen:$pagelen+1;//页码个数
$pageoffset = ($pagelen-1)/2;//页码个数左右偏移量

//生成html
$pagecode=’<div class="page">’;
$pagecode.="<span>$page/$pages</span>";//第几页,共几页
//如果是第一页,则不显示第一页和上一页的连接
if($page!=1){
$pagecode.="<a href=\"{$phpfile}?page=1\"><<</a>";//第一页
$pagecode.="<a href=\"{$phpfile}?page=".($page-1)."\"><</a>";//上一页
}
//分页数大于页码个数时可以偏移
if($pages>$pagelen){
//如果当前页小于等于左偏移
if($page<=$pageoffset){
$init=1;
$max = $pagelen;
}else{//如果当前页大于左偏移
//如果当前页码右偏移超出最大分页数
if($page+$pageoffset>=$pages+1){
$init = $pages-$pagelen+1;
}else{
//左右偏移都存在时的计算
$init = $page-$pageoffset;
$max = $page+$pageoffset;
}
}
}
//生成html
for($i=$init;$i<=$max;$i++){
if($i==$page){
$pagecode.=’<span>’.$i.’</span>’;
} else {
$pagecode.="<a href=\"{$phpfile}?page={$i}\">$i</a>";
}
}
if($page!=$pages){
$pagecode.="<a href=\"{$phpfile}?page=".($page+1)."\">></a>";//下一页
$pagecode.="<a href=\"{$phpfile}?page={$pages}\">>></a>";//最后一页
}
$pagecode.=’</div>’;
return array(’pagecode’=>$pagecode,’sqllimit’=>’ limit ’.$offset.’,’.$pagesize);
}
?>

函数参数:

$page 当前$_GET获得的页码
$total 总记录数
$phpfile 页码连接文件名
$pagesize 不用解释了吧 呵呵
$pagelen 最多显示几个页码 注意(奇数),对称嘛!
函数返回一个数组:
pagecode 索引对应的内容是 生成的HTML 代码
sqllimit 索引对应的是sql limit 后缀

if($page<=$pageoffset){
$init=1;
$max = $pagelen;
}else{//如果当前页大于左偏移
//如果当前页码右偏移超出最大分页数
if($page+$pageoffset>=$pages+1){
$init = $pages-$pagelen+1;
}else{
//左右偏移都存在时的计算
$init = $page-$pageoffset;
$max = $page+$pageoffset;
}
}
}
//生成html
for($i=$init;$i<=$max;$i++){
if($i==$page){
$pagecode.=’<span>’.$i.’</span>’;
} else {
$pagecode.="<a href=\"{$phpfile}?page={$i}\">$i</a>";
}
}
if($page!=$pages){
$pagecode.="<a href=\"{$phpfile}?page=".($page+1)."\">></a>";//下一页
$pagecode.="<a href=\"{$phpfile}?page={$pages}\">>></a>";//最后一页
}
$pagecode.="<input type=\"text\" size=\"3\" onkeydown=\"if(event.keyCode==13) {window.location.href=’{$phpfile}?page=’+this.value; return false;}\" /></div>";
return array(’pagecode’=>$pagecode,’sqllimit’=>’ limit ’.$offset.’,’.$pagesize);
}
?>

请问 有人知道怎么 用php 做分页 当在第一页时,“前一页”不显示,当在最后一页时,“后一页”不显示没?

我爱编程网(https://www.52biancheng.com)小编还为大家带来请问 有人知道怎么 用php 做分页 当在第一页时,“前一页”不显示,当在最后一页时,“后一页”不显示没?的相关内容。

首先假设URL参数控制翻页的参数为page
$count_page=??//分页获取当前分页后 分多少页
$last_page=$count_page //设置最后一页
$page=$_GET['page'] //获取当前页数
$next_page=$page+1; //设置下一页
$prev_page=$page-1; //设置上一页
if(page=1 || empty(page))
{
echo "第一页" //或者不显示
echo "<a href=\"#\"?page=".$next_page.">下一页</a>”;
echo "<a href=\"#\"?page=".$last_page.">最后一页</a>“;
}
......//省略部分代码 第一页 上一页 下一页 最后一页
if(page>=last_page)
{
echo "<a href=\"#\"?page=1>第一页</a>“;
echo "<a href=\"#\"?page=".$prev_page.">上一页</a>
echo "第一页" //或者不显示
}
你先试试 要不行我加你帮你看看代码。这个不难 我爱编程网

以上,就是我爱编程网小编给大家带来的请问 有人知道怎么 用php 做分页 当在第一页时,“前一页”不显示,当在最后一页时,“后一页”不显示没?全部内容,希望对大家有所帮助!更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“请问 有人知道怎么 用php 做分页 当在第一页时,“前一页”不显示,当在最后一页时,“后一页”不显示没?”相关推荐
PHP中模糊查询后实现分页时,只显示第一页信息,之后的页面信息不显示,求类似问题解决方法最好有代码,谢 PHP处理数组常用的几个函数
PHP中模糊查询后实现分页时,只显示第一页信息,之后的页面信息不显示,求类似问题解决方法最好有代码,谢 PHP处理数组常用的几个函数

PHP中模糊查询后实现分页时,只显示第一页信息,之后的页面信息不显示,求类似问题解决方法最好有代码,谢如:select*fromtablenamewhere条件limit0,10这句话的意思是只取搜索到的前10条记录,分页的关键就是要控制limit后面的两个数字0代表从第0条记录开始,10代表取10条数据(也就是一页里面有几条记录),这条语句相当于是分页的第一页,要获取第二页的语句是

2025-01-20 09:05:08
网页里,怎么在一个页面里显示登陆用户的头像呢?(PHP语言)
网页里,怎么在一个页面里显示登陆用户的头像呢?(PHP语言)

php替换原来的头像,更新头像,这个语法执行不出来,请各位大侠帮忙是没有写入,还是写入的东西不对?$sql="updateuserinfosetloginid='".$loginid."',loginopwd='".$loginpwd."',loginname='".$loginname."',loginemail='".$loginemail."',loginphone='".$log

2024-10-14 05:58:43
用PHP实现分页显示要求实现和图片一样的功能 PHP分页显示制作详解
用PHP实现分页显示要求实现和图片一样的功能 PHP分页显示制作详解

用PHP实现分页显示要求实现和图片一样的功能希望你能用得上!&lt;?phpfunctionpage($page,$total,$phpfile,$pagesize=10,$pagelen=7){$pagecode=’’;//定义变量,存放分页生成的HTML$page=intval($page);//避免非数字页码$total=intval($total);//保证总记

2024-12-25 05:59:16
在PHP页面怎么实现定时刷新显示内容?
在PHP页面怎么实现定时刷新显示内容?

在PHP页面怎么实现定时刷新显示内容?jquery+ajax可以很容易实现啊,通过settimeout(function(),5)去触发函数就行,与通过点击发送请求没区别啊。setInterval(function(){jQuery.ajax({type:"POST",url:"111.php",global:false,dataType:"json",

2024-09-28 14:49:00
用PHP实现分页显示要求实现和图片一样的功能 PHP分页问题. 望大虾开示
用PHP实现分页显示要求实现和图片一样的功能 PHP分页问题. 望大虾开示

php分页跳转你这个太麻烦我给你推荐一个&lt;?phpclasspage{var$page_name="page";var$next_page='&gt;';//下一页var$pre_page='&lt;';//上一页var$first_page='&lt;&lt;首页';//首页var$last_page='尾页&gt;&gt;';//尾页var$p

2025-01-15 13:53:30
php分页跳转 PHP分页显示制作详解
php分页跳转 PHP分页显示制作详解

php分页跳转你这个太麻烦我给你推荐一个&lt;?phpclasspage{var$page_name="page";var$next_page='&gt;';//下一页var$pre_page='&lt;';//上一页var$first_page='&lt;&lt;首页';//首页var$last_page='尾页&gt;&gt;';//尾页var$p

2025-02-09 05:48:46
php时间函数输出 PHP页面显示时间问题
php时间函数输出 PHP页面显示时间问题

PHP中用日期函数显示当前年月日喝当前时间1、格式化输出时间echodate("Y-m-dH:i:s",time());//格式化输出时间//第二个时间是一个时间戳echodate("Y-m-dH:i:s",0);//0和负数返回的是格林尼治时间元年。echodate("Y年m月d日H:i:s",0);echodate(“n”,time());//月echodate(

2025-01-16 11:01:41
php分页封装函数 用PHP实现分页显示要求实现和图片一样的功能
php分页封装函数 用PHP实现分页显示要求实现和图片一样的功能

使用php分页技术后,点击第一页的按钮页面可顺利跳转,但是点击第二页或者之后页面的按钮,页面无法跳转看了这个代码,发现没有获取当前页码的代码,所以我改了一下,加了个获取当前页码的代码function showpagelink($pagesize,$result,$currentpage,$pageleft,$pageright,$phpfile) //分页显示函数,参数分别为每页记录数

2025-02-10 10:00:20