首页 > 编程知识 正文

php分页算法(java分页算法)

时间:2023-12-11 12:29:16 阅读:314234 作者:XWVC

本文目录一览:

php 分页算法

这是我以前用的分页,你看看吧,希望能帮到你。

html

head

title分页/title

/head

body

table align="center" border="1" width="500"

tr

td编号/td

td用户名/td

td密码/td

td邮箱/td

/tr

?php

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

mysql_set_charset("utf8",$conn);

$db = mysql_select_db("bbs",$conn);

$rs = mysql_query("select * from userInfo");

$totalRow = mysql_num_rows($rs);//总记录数

$currentPage = $_GET["currentPage"];//当前页

if($currentPage == null){

$currentPage = 1;

}

$pageSize = 3;//每页显示的记录数

$first = ($currentPage-1)*$pageSize;//起始值

$last = $first + $pageSize;//结束值

$totalPage = ceil($totalRow / $pageSize);//总页数

if($last $totalRow)

{

$last = $totalRow;

}

for($i=$first;$i$last;$i++)

{

mysql_data_seek($rs,$i);//定位游标

$row = mysql_fetch_array($rs);

echo "tr";

echo " td{$row[0]}/td";

echo " td{$row[1]}/td";

echo " td{$row[2]}/td";

echo " td{$row[3]}/td";

echo "/tr";

}

mysql_free_result($rs);

mysql_close($conn);

?

tr

td colspan="4" align="center"

?php

if($currentPage == 1)

{

echo "首页 上一页";

}

else

{

?

a href="fenye.php?currentPage=1"首页/a

a href="fenye.php?currentPage=?php echo $currentPage-1 ?"上一页/a

?php

}

if($currentPage == $totalPage)

{

echo " 下一页 尾页";

}

else

{

?

a href="fenye.php?currentPage=?php echo $currentPage+1 ?"下一页/a

a href="fenye.php?currentPage=?php echo $totalPage ?"尾页/a

?php

}

?

td

/tr

/table

/body

/html

求php数字分页算法

假设。

你只需要显示当前页数的前3页和后3页。

呐么只有3种可能。

第一个可能,用户当前点击的页数未超过前3页。需要显示前7页(前三页和后三页以及当前点击的页)省略7页后面的页。

第二个可能,用户点击的页数以超过前三页可是未到尾三页。那么就要省略当前页数的前三页后三页之外的所有页码。

第三个可能,用户点击的页数以超过尾三页。那么就省略最后7页外的所有页码。

这是我写的分页码中算省略页码的代码。

$fornum = 10; //先声明你要显示的是几个页。

if($totalpage $fornum) //判断当前的所有页数是否超过你要显示的页。如果没超过。那就不用费事直接显示所有页码就行叻。 如果超过进入循环。

{

//第一种可能。我这个是只显示10个页码。

if($page=6) //如果当前的页码大于等于6.也就是前面的页码不用省略。直接省略10个页码之后的页就OK叻。

{

for($i=1; $i = $fornum; $i++)//这就是循环显示数字页码

{

if($page == $i ){

echo 'a href="javascript:;" class="on"'.$i.'/a';

}

else{

echo 'a href="'.$_SERVER['PHP_SELF'].'?page='.$i.'" class="num"'.$i.'/a';

}

}

echo 'a href="'.$_SERVER['PHP_SELF'].'?page='.$totalpage.'" class="num"...'.$totalpage.'/a';

}

//注意阿。这不是第二个可能。这是第三个可能。因为第一个和第三个好判断。而两个都不满足呐就是第二个可能叻。所以第二个不用判断。这个条件也很好解释。总的页数减去当前页数小于等于5的话。那么就省略最后10页以外的页码。

elseif(($totalpage-$page) = 5)

{

echo 'a href="'.$_SERVER['PHP_SELF'].'?page=1" class="num"1.../a';

for($i=$totalpage - ($fornum -1); $i = $totalpage; $i++)//依旧是循环显示数字页码

{

if($page == $i ){

echo 'a href="javascript:;" class="on"'.$i.'/a';

}

else{

echo 'a href="'.$_SERVER['PHP_SELF'].'?page='.$i.'" class="num"'.$i.'/a';

}

}

}

//这就是第二个可能叻。第一和第三的条件都不满足那么只有前没到头后没着尾的情况叻。所以不用判断直接显示当前页数的前几页和后几页。头尾都省略。

else

{

echo 'a href="'.$_SERVER['PHP_SELF'].'?page=1" class="num"1.../a';

for($i=$page - 4; $i $page + 5; $i++)//循环显示数字页码

{

if($page == $i ){

echo 'a href="javascript:;" class="on"'.$i.'/a';

}

else{

echo 'a href="'.$_SERVER['PHP_SELF'].'?page='.$i.'" class="num"'.$i.'/a';

}

}

echo 'a href="'.$_SERVER['PHP_SELF'].'?page='.$totalpage.'" class="num"...'.$totalpage.'/a';

}

}

//这是最上面的那个if的,如果总页码没超过你要显示的页码就直接显示所有的页码~

else

{

for($i=1; $i = $totalpage; $i++)//仍是循环显示数字页码

{

if($page == $i ){

echo 'a href="javascript:;" class="on"'.$i.'/a';

}

else{

echo 'a href="'.$_SERVER['PHP_SELF'].'?page='.$i.'" class="num"'.$i.'/a';

}

}

}

然后就木有叻。首页尾页上页下页的代码我就不粘叻。 关于显示固定页码的代码就是这些。希望你能看懂。打的我手都酸了。。。

php 分页设置

if($offset) //如果偏移量是0,则没有上一页的链接

{

$preoffset=$offset-10;

print("a href="$PHP_SELF?offset=$preoffset"上一页/a n");

//从这里知道$offset是每次查询数据库记录时的第一条记录(相对总共10条记录而言)

}

//计算总共需要的页数

$page_cnt=ceil($num/10);

//显示到所有页的链接

for ($i=1; $i=$page_cnt; $i++)

{

$page_offset=10*$i-10;

print("a href="$PHP_SELF?offset=$page_offset"$i/a n");

}

//检查是否是最后一页

if ($page_cnt!=0 (($offset+10)/10)!=$page_cnt)

{

$backoffset=$offset+10;

print("a href="$PHP_SELF?offset=$backoffset"下一页/a n");

}

//页码显示

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。