在PHP网站开发与建设过程中,分页显示相关数据是我们经常遇到的,而PHP+Mysql的分页显示技术有不同的解决方案,今天和大家分享我自己写的PHP分页代码,数据库采用Mysql。
此PHP分页代码主要由以下几个PHP分页函数组成:
分页页数计算函数(getTotalpages)、分页参数设定函数(setPagesPar)、Mysql分页记录函数(turnPages)、分页显示样式函数(showTurnPages)
PHP分页代码显示效果
1 2 3 4 5 6 7 8 9 10 > >>
<< <10 11 12 13 14 15 16 17 18 19 > >>
<< <19 … … … … … … … … … … …> >>
startpage:1、10、19、28….
<<:首页 >>:尾页 <:前十页 >:后十页
需要预先设定的PHP分页参数说明
$pageSize:页面记录数,即每个页面显示多少条记录
$showpagenum:一次显示多少页码数
$url:链接的具体页面地址,建议采用相对地址
PHP分页页数计算函数代码实例
功能:计算需要显示的总页数
算法:总记录数/每个页面显示的记录数
function getTotalpages($sql,$pageSize)
{
return ceil(@mysql_num_rows(query_error($sql))/$pageSize);
}
注:query_error($sql)函数相当于mysql_query()函数,ceil函数用来取整数。
PHP分页参数设定函数代码实例
功能:设定分页函数所需要的相关参数
function setPagesPar($page,$totalpages,$startpage,$showpagenum,$direct)
{
if($page>$totalpages ||$page <=0)
{
$page = 1;
$startpage = 1;
}
$tail = 1;
$startpagecode = array('');
$startpagecode[0] = 1;
for($i=1;$i<=(($totalpages/$showpagenum));$i++)
{
$tail = $tail + ($showpagenum-1);
$startpagecode[$i] = $tail;
}
if(!in_array($startpage,$startpagecode))
{
$startpage = $startpagecode[0];
$page = 1;
}
if(!($page%$showpagenum))
{
if($startpage == 1)
$startpage = $showpagenum;
else
{
if($page == $startpage)
{
if($direct == 'next' || $direct == 'prev'|| $direct == 'tail')
$startpage = $startpage;
else
$startpage = $startpage - ($showpagenum-1);
}
}
$info['page'] = $page;
$info['startpage'] = $startpage;
$info['tail'] = $tail;
return $info;
}
if($page%$showpagenum && $startpage!=1)
{
if($page == $startpage)
{
if($direct == 'next' || $direct == 'prev')
$startpage = $startpage;
else
$startpage = $startpage - ($showpagenum-1);
}
else
{
if($page == ($startpage+($showpagenum-1)))
$startpage = $startpage + ($showpagenum-1);
}
$info['page'] = $page;
$info['startpage'] = $startpage;
$info['tail'] = $tail;
return $info;
}
$info['page'] = $page;
$info['startpage'] = $startpage;
$info['tail'] = $tail;
return $info;
} |