以数组的思想编写的 分页样式
//分页
function page($total,$current)
{
$page = array();
if($total>7) //总数大于7
{
if($current>=3) //前三页显示
{
$pagef = array();
if($current<$total -3) //前后相接处理
{
for ($i=$current-2;$i<$current+3;$i++)
{
if ($i == $current)
{
$page['priv'] = $i>1?$i-1:false;
$pagef[$i]['is_select'] = true;
$pagef[$i]['curr'] = $i;
$page['next'] = $i>=$total?false:$i+1;
}
else
{
$pagef[$i]['curr'] = $i;
}
}
}
else
{
for ($i=$total-6;$i<=$total;$i++)
{
if ($i == $current)
{
$page['priv'] = $i>1?$i-1:false;
$pagef[$i]['is_select'] = true;
$pagef[$i]['curr'] = $i;
$page['next'] = $i>=$total?false:$i+1;
}
else
{
$pagef[$i]['curr'] = $i;
}
}
}
}
elseif($current==1) //第一页处理
{
$pagef = array();
for ($i=$current;$i<$current+5;$i++)
{
if ($i == $current)
{
$page['priv'] = $i>1?$i-1:false;
$pagef[$i]['is_select'] = true;
$pagef[$i]['curr'] = $i;
$page['next'] = $i>=$total?false:$i+1;
}
else
{
$pagef[$i]['curr'] = $i;
}
}
}
elseif($current==2) //第二页处理
{
$pagef = array();
for ($i=$current-1;$i<$current+4;$i++)
{
if ($i == $current)
{
$page['priv'] = $i>1?$i-1:false;
$pagef[$i]['is_select'] = true;
$pagef[$i]['curr'] = $i;
$page['next'] = $i>=$total?false:$i+1;
}
else
{
$pagef[$i]['curr'] = $i;
}
}
}
if($current<$total -3) //前后相接处理
{
$pagel = array();
for ($j=$total-1;$j<=$total;$j++)
{
if ($j == $current)
{
$page['priv'] = $j>1?$j-1:false;
$page['next'] = $j>=$total?false:$j+1;
$pagef[$j]['is_select'] = true;
$pagel[$j]['curr'] = $j;
}
else
{
$pagel[$j]['curr'] = $j;
}
}
}
}
else //总数小于7
{
if($current>=3)
{
$pagef = array();
for ($i=1;$i<=$total;$i++)
{
if ($i == $current)
{
$page['priv'] = $i>1?$i-1:false;
$pagef[$i]['is_select'] = true;
$pagef[$i]['curr'] = $i;
$page['next'] = $i>=$total?false:$i+1;
}
else
{
$pagef[$i]['curr'] = $i;
}
}
}
elseif($current==1)
{
$pagef = array();
for ($i=$current;$i<=$total;$i++)
{
if ($i == $current)
{
$page['priv'] = $i>1?$i-1:false;
$pagef[$i]['is_select'] = true;
$pagef[$i]['curr'] = $i;
$page['next'] = $i>=$total?false:$i+1;
}
else
{
$pagef[$i]['curr'] = $i;
}
}
}
elseif($current==2)
{
$pagef = array();
for ($i=$current-1;$i<=$total;$i++)
{
if ($i == $current)
{
$page['priv'] = $i>1?$i-1:false;
$pagef[$i]['is_select'] = true;
$pagef[$i]['curr'] = $i;
$page['next'] = $i>=$total?false:$i+1;
}
else
{
$pagef[$i]['curr'] = $i;
}
}
}
}
$pagef = empty($pagef)?'':$pagef;
$pagel = empty($pagel)?'':$pagel;
$page['frist'] = $pagef;
$page['last'] = $pagel;
return $page;
}
php使用代码
$curr = isset($_REQUEST['cur'])?$_REQUEST['cur']:1;
$gd_num = $goods->getNum($user_id);
$page_size = 5;
$total = ceil($gd_num/$page_size);
// if($curr >$total)
// {
// echo "<script>alert('没有这页');</script>";
// }
$goods_info = $goods->getAllGoodsInfo($user_id,($curr-1)*$page_size,$page_size);
if(!empty($goods_info))
{
foreach ($goods_info as $k=>$v)
{
$sql = "select count(*) from goods_message where is_read=0 and reply_id=0 and m_type='g' and goods_id=".$v['goods_id'];
$counts = $db->getOne($sql);
$goods_info[$k]['gmsg_count'] = $counts;
}
}
$page = page($total,$curr);
$base_url = "goods_manage.php?act=mlist&cur=";
$form_link = "goods_manage.php?";
$smarty->assign('curr',$curr);
$smarty->assign('base_url',$base_url);
$smarty->assign('page',$page);
$smarty->assign('goodsinfo',$goods_info);
$smarty->display('goods_mlist.html');
page.html
<!--{begin pagelist-->
<div class="pagelist">
<div class="pageinner">
<{if $page.priv}>
<a class="pagepre" href="<{$base_url}><{$page.priv}>">上一页</a>
<{/if}>
<{if $page.frist}>
<{foreach from=$page.frist item=first}>
<{if $first.is_select}>
<strong><{$first.curr}></strong>
<{else}>
<a href="<{$base_url}><{$first.curr}>"><{$first.curr}></a>
<{/if}>
<{/foreach}>
<{/if}>
<{if $page.last}>
<span>...</span>
<{foreach from=$page.last item=last}>
<a href="<{$base_url}><{$last.curr}>"><{$last.curr}></a>
<{/foreach}>
<{/if}>
<{if $page.next}>
<a class="pagenext" href="<{$base_url}><{$page.next}>">下一页</a>
<{/if}>
<{if $page.frist}>
<form action="<{$form_link}>" method="post">
<input type="hidden" name="act" value="mlist"/>
<span>到第</span><input type="text" name="cur" size="10" align="absbottom" class="pagenum" /><span>页</span>
<input class="pagebtn" type="submit" align="absbottom" value="确定" />
</form>
<{/if}>
</div>
</div>
<!--}end pagelist-->