本文目录一览:
- 1、php 分页算法
- 2、求php数字分页算法
- 3、php 分页设置
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");
}
//页码显示