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))||($total0))$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($style='',$nowindex_style='')

{

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($style='',$nowindex_style='')

{

if($this-nowindex1){

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($style='',$nowindex_style='')

{

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($style='',$nowindex_style='')

{

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($style='',$nowindex_style='')

{

$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,$style='',$nowindex_style='')

{

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 style="color:#C16012; font-size:12pt;"'.$this-nowindex.'/span页 共span style="color:#C16012; font-size:12pt;"'.$this-totalpage.'/span页 span style="color:#C16012; font-size:12pt;"'.$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 style="color:#C16012; font-size:12pt;"'.$this-nowindex.'/span页 共span style="color:#C16012; font-size:12pt;"'.$this-totalpage.'/span页 span style="color:#C16012; font-size:12pt;"'.$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 style="color:#C16012; font-size:12pt;"'.$this-nowindex.'/span页 共span style="color:#C16012; font-size:12pt;"'.$this-totalpage.'/span页 span style="color:#C16012; font-size:12pt;"'.$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 style="color:#C16012; font-size:12pt;"'.$this-nowindex.'/span页 共span style="color:#C16012; font-size:12pt;"'.$this-totalpage.'/span页 span style="color:#C16012; font-size:12pt;"'.$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 style="color:#C16012; font-size:12pt;"'.$this-nowindex.'/span页 共span style="color:#C16012; font-size:12pt;"'.$this-totalpage.'/span页 span style="color:#C16012; font-size:12pt;"'.$this-total.'/span条记录)';

break;

case '6':

$pagehtml="div";

if($this-nowindex1)

{

$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.="tabletr";

$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,$style=''){

$style=(empty($style))?'':'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" style="font-size:12px;"

?php

if($iiii10)

{

echo $iiii;

}

else

{

echo '0'.$iiii;

}

?

/td

td width="371" class="news" style="font-size:12px;"a href="newslist.php?id=?=$a_array[article_id]?"?=$a_array['article_title']?/a/td

td width="73" class="news" style="font-size:12px;"?=$a_array['article_hits']?/td

td width="89" class="news" style="font-size:12px;"?=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" style="font-size:12px"

?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分页中跳转到指定页如何做

使用GET传参,再根据参数来确定查询数据开始的偏移量,例:

$sql = sprintf('SELECT * FROM t WHERE uid=1 LIMIT %d,10',$_GET['page']);

$_GET['page']决定查询结果集开始的序号,然后下一页的开始序号就是这个值加上每页显示的条数(这里是10).

使用php分页技术后,点击第一页的按钮页面可顺利跳转,但是点击第二页或者之后页面的按钮,页面无法跳转

看了这个代码,发现没有获取当前页码的代码,所以我改了一下,加了个获取当前页码的代码

function showpagelink($pagesize,$result,$currentpage,$pageleft,$pageright,$phpfile) //分页显示函数,参数分别为每页记录数,数据集,当前页,左偏移页面数量,右偏移页面数量,链接页面

{

$totalpage=ceil($totalnum/$pagesize); //计算总页数

$currentpage=$_GET['currentpage'];//获取当前页码

if($currentpage1) $page = 1; //处理页码合法性 

if($currentpage$totalpage) $currentpage = $totalpage;

$pagecode='div class="pagelink"';

if($currentpage!=1)

{

$pagecode.="a href=\"{$phpfile}?currentpage=1\"/a";//第一页

$pagecode.=" a href=\"{$phpfile}?currentpage=".($currentpage-1)."\"/a";//上一页

}

if(($pagelink=$currentpage-$pageleft)=0) $pagelink=1;

while($pagelink$currentpage)

{

$pagecode.=" a href=\"{$phpfile}?currentpage=$pagelink\"span class='pc'$pagelink/span/a ";

$pagelink++;

}

$pagecode.=" strong$currentpage/strong "; //输出当前页

$pagelink=$currentpage+1;

$i=0;

while($pagelink=$totalpage and $i$pageright)

{

$pagecode.=" a href=\"{$phpfile}?currentpage=$pagelink\"span class='pc'$pagelink/span/a ";

$pagelink++;

$i++;

}

if($currentpage!=$totalpage){

$pagecode.=" a href=\"{$phpfile}?currentpage=".($currentpage+1)."\"/a";//下一页

$pagecode.=" a href=\"{$phpfile}?currentpage=$totalpage\"/a";//最后一页

}

$pagecode.=" span$currentpage/$totalpage 共为您查到".$totalnum."件商品/span"; //第几页,共几页

$pagecode.="/div";

echo $pagecode;

}

function showpagedetail($pagesize,$query,$currentpage,$conn) //页面数据显示函数

{

$limit=intval($pagesize*($currentpage-1));

$query.=" limit $limit,$pagesize";

$result=mysql_query($query,$conn);

while($info=mysql_fetch_array($result,MYSQL_NUM))

{

echo "ul class='pro_con1'";

echo $info[0];

echo "li class='pro_img'a href='#' title=''img src='$info[7]' width='150' height='150' alt='产品图片' //a/li";

echo"li class='pro_name'a href='#' title='' $info[1]/a/li";

 echo"li class='pro_price'单价:span¥$info[5]/span 销量:span$info[3]件/span/li";

echo"li class='pro_custom'ainput type='submit' name='$info[0]' id='$info[0]' value='产品详情' //a/li/ul";

}

$num=mysql_affected_rows();

for($i=1;$i=$num;$i++){

if(@$_REQUEST[$i]){

echo $i;

$_REQUEST["temp"]=$i;

echo "scriptlocation.href='product_detail.php'/script";

} }}

$pagesize=2;

$phpfile="product.php";

if(!@$currentpage=$_GET["currentpage"]) $currentpage=1;

$pageleft=1;

$pageright=1;

showpagedetail($pagesize,$query,$currentpage,$conn);

$num=mysql_affected_rows();

for($i=1;$i=$num;$i++){

if(@$_REQUEST[$i]){

echo $i;

$_REQUEST["temp"]=$i;

echo "scriptlocation.href='product_detail.php'/script";

} }

你可以先试试这个

PHP 分页问题,能显示数据,就是点击“下一页”无法跳转。请高手帮我看看代码哪里出了问题,谢谢。

$page=$_GET['page'];

echo "a href=page_affiche.php?page=".$page-1."上一页/anbsp;";

PHP分页显示中关于分页跳转的问题

onchange='window.location=\"$url?page=\"+this.value'

字符解析,"是特殊字符。用\转成字符

php分页 直接输入跳转怎么实现

htmlhead

title分页示例(php/title

meta http-equiv="Content-Type" content="text/html; charset=gb2312"

/head

body

?php

$pagesize=10; //设定每一页显示的记录数

$conn=mysql_connect("localhost","root","jrq");

mysql_select_db("sj",$conn);

$rs = mysql_query( "select * from `dw_newsdata`",$conn); //这里有第二个可选参数,指定打开的连接

//-----------------------------------------------------------------------------------------------//

//分页逻辑处理

//-----------------------------------------------------------------------------------------------

$tmpArr = mysql_fetch_array($rs);

$numAL = mysql_num_rows($rs); //取得记录总数$rs

$pages=intval($numAL/$pagesize); //计算总页数

if ($numAL % $pagesize) $pages++;

//设置缺省页码

//↓判断“当前页码”是否赋值过

if (isset($_GET['page'])){ $page=intval($_GET['page']); }else{ $page=1; }//否则,设置为第一页

//↓计算记录偏移量

$offset=$pagesize*($page - 1);

//↓读取指定记录数

$rs=mysql_query("select * from `dw_newsdata` limit $offset,$pagesize",$conn);//取得—当前页—记录集!

$curNum = mysql_num_rows($rs); //$curNum - 当前页实际记录数,for循环输出用

?

table border="0" width="80%"

tr

td width="50%" bgcolor="#E0E0E0"标题/td

td width="50%" bgcolor="#E0E0E0"发布时间/td

/tr

?php

while ($tmpArr = mysql_fetch_array($rs)) //提取一行,并循环判断

{

$i=0;

// for($a=0;$a$ColNum;$a++) //==for结束==

?

tr

td width="50%"?= $tmpArr[1]; //$tmpArr["news_title"] ; ?/td

td width="50%"?php echo $tmpArr[2]; //$tmpArr["news_cont"]; ?/td

/tr

?php

}//==while结束==

?

/table

?php

//============================//

// 翻页显示 一

//============================//

echo "p"; // align=center

$first=1;

$prev=$page-1;

$next=$page+1;

$last=$pages;

if ($page 1)

{

echo "a href='?page=".$first."'首页/a ";

echo "a href='?page=".$prev."'上一页/a ";

}

if ($page $pages)

{

echo "a href='?page=".$next."'下一页/a ";

echo "a href='?page=".$last."'尾页/a ";

}

//============================//

// 翻页显示 二

//============================//

echo " | 共有".$pages."页(".$page."/".$pages.")";

for ($i=1;$i $page;$i++){echo "a href='?page=".$i."'[".$i ."]/a ";} // 1-先输出当前页之前的

if ($page 0) echo "[".$page."]";; // 2-再输出当前页

for ($i=$page+1;$i=$pages;$i++){echo "a href='?page=".$i."'[".$i ."]/a ";}// 3-接着输出当前页之后

echo "转到第 INPUT maxLength=3 size=3 value=".($page+1)." name=gotox 页 INPUT hideFocus onclick=\"location.href='?page=gotox.value';\" type=button value=Go name=cmd_goto";

echo "/p";

?

/body

/html


当前名称:php数据分页跳转 php实现分页
标题链接:http://scjbc.cn/article/doopoig.html

其他资讯