php分页原理!!!为什么数字页码部分不输出。。代码如下
<?include("connect.php");$page=isset($_GET["page"])?$_GET["page"]:1;//设置当前页码值mysql_se...
<?
include ("connect.php");
$page=isset($_GET["page"])?$_GET["page"]:1;//设置当前页码值
mysql_select_db("page");
$sql="select * from page";
$result=mysql_query($sql);
$total=mysql_num_rows($result);//总条数
$pagesize=5;
$pagelen=7;
$pages=ceil($total/$pagesize);//总页数
$pagelen=($pagelen%2)?$pagelen:$pagelen+1;//页码数,奇数对称
$pageoffset=($pagelen-1)/2;//页码左右偏移
$init=1;//第一个页码
$end=$pages;//最后一个页码
$htmlcode="<div>";//输出的网页代码
$path=$_SERVER[REQUEST_URI];//获得路径
$path=parse_url($path);
$path=$path[path];
//内容
$sql="select * from page limit ".$pagesize*($page-1).",$pagesize";
$result=mysql_query($sql);
while($arr=mysql_fetch_array($result)){
echo "<div>$arr[name] | $arr[sex]</div>";
}
//页码
if($page!=1){//当前为第一页则不显示第一页和上一页
$html.="<span><a href='$path?page=1'>第一页</a></span>";
$html.="<span><a href=".$path."?page=".($page-1).">上一页</a></span>";
}
//设置$init,$end
if($pages>$pagelen){//总页数大于页码数
if($page<=$pageoffset){//当前页小于左偏移
$end=$pagelen;
$init=1;
}else if($page+$pageoffset>$pages){//当前页加右偏移大于总页数
$init=$pages-$pagelen+1;
}else{//左右偏移都有
$init=$page-$pageoffset;
$end=$page+$pageoffset;
}
}
//数字页码--------------------------------为什么不输出????
for($i=$init;$i<$end;$i++){
if($page==$i)
$htmlcode.="<span>$i</span>";
else $htmlcode.="<span><a href=$path?page=$i>$i</a></span>";
}
if($page!=$pages){//当前为最后一页则不输出下一页和最后一页
$html.="<span><a href=".$path."?page=".($page+1).">下一页</a></span>";
$html.="<span><a href='$path?page=$pages'>最后一页</a></span>";
}
$html.="</div>";
echo $html;
mysql_close($con);
?>
为什么数字页码部分不输出??什么上一页下一页的都能输出。。 展开
include ("connect.php");
$page=isset($_GET["page"])?$_GET["page"]:1;//设置当前页码值
mysql_select_db("page");
$sql="select * from page";
$result=mysql_query($sql);
$total=mysql_num_rows($result);//总条数
$pagesize=5;
$pagelen=7;
$pages=ceil($total/$pagesize);//总页数
$pagelen=($pagelen%2)?$pagelen:$pagelen+1;//页码数,奇数对称
$pageoffset=($pagelen-1)/2;//页码左右偏移
$init=1;//第一个页码
$end=$pages;//最后一个页码
$htmlcode="<div>";//输出的网页代码
$path=$_SERVER[REQUEST_URI];//获得路径
$path=parse_url($path);
$path=$path[path];
//内容
$sql="select * from page limit ".$pagesize*($page-1).",$pagesize";
$result=mysql_query($sql);
while($arr=mysql_fetch_array($result)){
echo "<div>$arr[name] | $arr[sex]</div>";
}
//页码
if($page!=1){//当前为第一页则不显示第一页和上一页
$html.="<span><a href='$path?page=1'>第一页</a></span>";
$html.="<span><a href=".$path."?page=".($page-1).">上一页</a></span>";
}
//设置$init,$end
if($pages>$pagelen){//总页数大于页码数
if($page<=$pageoffset){//当前页小于左偏移
$end=$pagelen;
$init=1;
}else if($page+$pageoffset>$pages){//当前页加右偏移大于总页数
$init=$pages-$pagelen+1;
}else{//左右偏移都有
$init=$page-$pageoffset;
$end=$page+$pageoffset;
}
}
//数字页码--------------------------------为什么不输出????
for($i=$init;$i<$end;$i++){
if($page==$i)
$htmlcode.="<span>$i</span>";
else $htmlcode.="<span><a href=$path?page=$i>$i</a></span>";
}
if($page!=$pages){//当前为最后一页则不输出下一页和最后一页
$html.="<span><a href=".$path."?page=".($page+1).">下一页</a></span>";
$html.="<span><a href='$path?page=$pages'>最后一页</a></span>";
}
$html.="</div>";
echo $html;
mysql_close($con);
?>
为什么数字页码部分不输出??什么上一页下一页的都能输出。。 展开
2个回答
展开全部
参考下:
1. /*分页开始*/
2. $article_arr=explode("<div style=\"page-break-after:
always;\"><span style=\"display: none;\">
</span></div>",$article['content']);
3. $page_cnt=count($article_arr);
4. if($page){
5. if($page>$page_cnt) $page=$page_cnt;
6. if($page < 1)$page=1;
7. $article["content"]=$article_arr[$page-1];
8. }else{
9. $article["content"]=$article_arr[0];
10. }
11. if($page_cnt>1){
12. for($i=1;$i<=$page_cnt;$i++){
13. if($page==$i){
14. $page_na.="<li><span>{$i}</span></li>";
15. }else{
16. $url=$_SERVER['SCRIPT_NAME'].'?id='.$article_id.'&page='.$i;
17. $page_na.="<li><a href=\"{$url}\">{$i}</a></li>";
18. }
19. }
20. $k = $_REQUEST['page'];
21. $prev_url = $_SERVER['SCRIPT_NAME'].'?id='.$article_id.'&page='.($k-1);
22. if($k==NULL)$k=1;
23. $next_url = $_SERVER['SCRIPT_NAME'].'?id='.$article_id.'&page='.($k+1);
24.
25.
26. if(($k+1)>$page_cnt){
27. $page_nav=$page_na."<li><a href=\"{$prev_url}\"
class=\"next\">上一页</a></li><li><span
class=\"next\">下一页</span></li>";
28. }else{
29. if(($k-1)<=0){
30. $page_nav=$page_na."<li><span
class=\"next\">上一页</span></li><li><a
href=\"{$next_url}\" class=\"next\">下一页</a></li>";
31. }else{
32. $page_nav=$page_na."<li><a href=\"{$prev_url}\"
class=\"next\">上一页</a></li><li><a
href=\"{$next_url}\" class=\"next\">下一页</a></li>";
33. }
34. }
35.
36. }
37. $smarty->assign('page_nav',$page_nav);
38. /*分页结束*/
1. /*分页开始*/
2. $article_arr=explode("<div style=\"page-break-after:
always;\"><span style=\"display: none;\">
</span></div>",$article['content']);
3. $page_cnt=count($article_arr);
4. if($page){
5. if($page>$page_cnt) $page=$page_cnt;
6. if($page < 1)$page=1;
7. $article["content"]=$article_arr[$page-1];
8. }else{
9. $article["content"]=$article_arr[0];
10. }
11. if($page_cnt>1){
12. for($i=1;$i<=$page_cnt;$i++){
13. if($page==$i){
14. $page_na.="<li><span>{$i}</span></li>";
15. }else{
16. $url=$_SERVER['SCRIPT_NAME'].'?id='.$article_id.'&page='.$i;
17. $page_na.="<li><a href=\"{$url}\">{$i}</a></li>";
18. }
19. }
20. $k = $_REQUEST['page'];
21. $prev_url = $_SERVER['SCRIPT_NAME'].'?id='.$article_id.'&page='.($k-1);
22. if($k==NULL)$k=1;
23. $next_url = $_SERVER['SCRIPT_NAME'].'?id='.$article_id.'&page='.($k+1);
24.
25.
26. if(($k+1)>$page_cnt){
27. $page_nav=$page_na."<li><a href=\"{$prev_url}\"
class=\"next\">上一页</a></li><li><span
class=\"next\">下一页</span></li>";
28. }else{
29. if(($k-1)<=0){
30. $page_nav=$page_na."<li><span
class=\"next\">上一页</span></li><li><a
href=\"{$next_url}\" class=\"next\">下一页</a></li>";
31. }else{
32. $page_nav=$page_na."<li><a href=\"{$prev_url}\"
class=\"next\">上一页</a></li><li><a
href=\"{$next_url}\" class=\"next\">下一页</a></li>";
33. }
34. }
35.
36. }
37. $smarty->assign('page_nav',$page_nav);
38. /*分页结束*/
展开全部
这是我写的页码部分代码,请您参考一下
// page num star
<?php
$all_p=$totalRows_rec_news/$maxRows_rec_news;
if ($all_p>(int)$all_p)$all_p=(int)$all_p+1;
else $all_p=(int)$all_p;
if(!isset($_GET['pageNum_rec_news'])) $_GET['pageNum_rec_news']=0;
for
($n=1; $n<=$all_p; ++$n ) { if
($n==($_GET['pageNum_rec_news']+1)) { ?>
<!-- // 当前页码-->
<strong
class="page_no"><?php echo
" ".$n." ";
?></strong>
<?php } else { ?>
<!--//其他页码-->
<strong class="page_no" ><a
class="arial_101" href="<?php printf("%s?pageNum_rec_news=%d%s",
$currentPage, min($totalPages_rec_news, $pageNum_rec_news=($n-1)),
$queryString_rec_news); ?>"><?php echo
" ".$n." "; ?></a></strong>
</a></strong>
<?php } }
?> //page num end
// page num star
<?php
$all_p=$totalRows_rec_news/$maxRows_rec_news;
if ($all_p>(int)$all_p)$all_p=(int)$all_p+1;
else $all_p=(int)$all_p;
if(!isset($_GET['pageNum_rec_news'])) $_GET['pageNum_rec_news']=0;
for
($n=1; $n<=$all_p; ++$n ) { if
($n==($_GET['pageNum_rec_news']+1)) { ?>
<!-- // 当前页码-->
<strong
class="page_no"><?php echo
" ".$n." ";
?></strong>
<?php } else { ?>
<!--//其他页码-->
<strong class="page_no" ><a
class="arial_101" href="<?php printf("%s?pageNum_rec_news=%d%s",
$currentPage, min($totalPages_rec_news, $pageNum_rec_news=($n-1)),
$queryString_rec_news); ?>"><?php echo
" ".$n." "; ?></a></strong>
</a></strong>
<?php } }
?> //page num end
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询