飘飘悠悠 发表于 2015-2-3 23:52:55

PHP网页编程之页码主动顺应局限的分页代码

小试一下身手,大概是没问题了,那么交给你个任务,做个留言本吧,这和HELLO WORLD有一比啊!^_^,同是新手面临的第一道关。   后果图:

记得之前看到过一个页码体例的分页后果,页码数多了折行持续显示一向到60多页,呵呵!有点影响雅观!

因而写了一个,可以主动顺应局限的页码分页法式
也就是说,页码格局以下
<< < 1 2 3 4 5 6 7 > >>
<< < 6 7 8 9 10 11 12 > >>
下划线为以后页,如许就能够固定显示一个邻近的页码,防止太长影响雅观
代码加了正文,次要是老手看看,呵呵 ,写这个函数,没有思索体现布局分别成绩,高手就不要究查了! 复制内容到剪贴板 代码:

<?php
function page($page,$total,$phpfile,$pagesize=10,$pagelen=7){
    $pagecode = '';//界说变量,寄存分页生成的HTML
    $page = intval($page);//防止非数字页码
    $total = intval($total);//包管总纪录数值类型准确
    if(!$total) return array();//总纪录数为零前往空数组
    $pages = ceil($total/$pagesize);//盘算总分页
    //处置页码正当性
    if($page<1) $page = 1;
    if($page>$pages) $page = $pages;
    //盘算查询偏移量
    $offset = $pagesize*($page-1);
    //页码局限盘算
    $init = 1;//肇端页码数
    $max = $pages;//停止页码数
    $pagelen = ($pagelen%2)?$pagelen:$pagelen+1;//页码个数
    $pageoffset = ($pagelen-1)/2;//页码个数摆布偏移量
   
    //生成html
    $pagecode='<div class="page">';
    $pagecode.="<span>$page/$pages</span>";//第几页,共几页
    //假如是第一页,则不显示第一页和上一页的毗连
    if($page!=1){
      $pagecode.="<a href=\"{$phpfile}?page=1\"><<</a>";//第一页
      $pagecode.="<a href=\"{$phpfile}?page=".($page-1)."\"><</a>";//上一页
    }
    //分页数大于页码个数时可以偏移
    if($pages>$pagelen){
      //假如以后页小于等于左偏移
      if($page<=$pageoffset){
            $init=1;
            $max = $pagelen;
      }else{//假如以后页大于左偏移
            //假如以后页码右偏移超越最大分页数
            if($page+$pageoffset>=$pages+1){
                $init = $pages-$pagelen+1;
            }else{
                //摆布偏移都存在时的盘算
                $init = $page-$pageoffset;
                $max = $page+$pageoffset;
            }
      }
    }
    //生成html
    for($i=$init;$i<=$max;$i++){
      if($i==$page){
            $pagecode.='<span>'.$i.'</span>';
      } else {
            $pagecode.="<a href=\"{$phpfile}?page={$i}\">$i</a>";
      }
    }
    if($page!=$pages){
      $pagecode.="<a href=\"{$phpfile}?page=".($page+1)."\">></a>";//下一页
      $pagecode.="<a href=\"{$phpfile}?page={$pages}\">>></a>";//最初一页
    }
    $pagecode.='</div>';
    return array('pagecode'=>$pagecode,'sqllimit'=>' limit '.$offset.','.$pagesize);
}
?>函数参数:
$page 以后$_GET取得的页码
$total 总纪录数
$phpfile 页码毗连文件名
$pagesize 不必注释了吧 呵呵
$pagelen 最多显示几个页码 注重(奇数),对称嘛!
函数前往一个数组:
pagecode 索引对应的内容是 生成的HTML 代码
sqllimit 索引对应的是sql limit 后缀

利用办法: 复制内容到剪贴板 代码:

<?php
$phpfile = 'index.php';
$page= isset($_GET['page'])?$_GET['page']:1;
$db = new Mysql();
$counts = $db->counts('select `id` from `test`');
$sql='select `id`,`title` from `test`';
$getpageinfo = page($page,$counts,$phpfile);
$sql.=$getpageinfo['sqllimit'];
$data = $db->getRows($sql);
?>
<?php
echo $getpageinfo['pagecode'];//显示分页的html代码
?>补助css 复制内容到剪贴板 代码:

<style type="text/css">
body{font-family:Tahoma;}
.page{padding:2px;font-weight:bolder;font-size:12px;}
.page a{border:1px solid #ccc;padding:0 5px 0 5px;margin:2px;text-decoration:none;color:#333;}
.page span{padding:0 5px 0 5px;margin:2px;background:#09f;color:#fff;border:1px solid #09c;}
</style>   <font face=Verdana>以下是HTML网页殊效代码,点击运转按钮可检查后果:

以下是法式代码<style type="text/css"> .page { width:auto; height:auto } .page ul { list-style:none; paddingL0; margin:0 } .page li { width:auto; height:20px; line-height:20px; float:left; margin-right:2px; color:#000; display:block; font-size:12px } .page li a { width:auto; height:20px; line-height:20px; border:1px solid #CCC; float:left; margin-right:2px; color:#000; TEXT-DECORATION: none; display:block; padding:0 5px; font-size:12px } .page li a:hover { background:blue; color:white; TEXT-DECORATION: none; border:1px solid blue } </style> <div class="page"> <ul> <li><a href="#">1</a></li> <li><a href="#">2</a></li> <li><a href="#">3</a></li> <li><a href="#">4</a></li> <li><a href="#">5</a></li> <li><a href="#">6</a></li> <li><a href="#">7</a></li> <li><a href="#">8</a></li> <li><a href="#">9</a></li> <li><a href="#">10</a></li> <li><a href="#">11</a></li> <li><a href="#">12</a></li> <li><a href="#">13</a></li> <li><a href="#">14</a></li> <li><a href="#">15</a></li> </ul> </div></font></CODE></div> <a href="http://js.alixixi.com/">接待会见阿里西西网页殊效代码站,js.alixixi.com</a>

理解动态语言的概念,运做机制,熟悉PHP语法

若相依 发表于 2015-2-4 06:48:21

开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。

飘灵儿 发表于 2015-2-5 15:34:22

其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。

蒙在股里 发表于 2015-2-9 04:28:07

学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。

简单生活 发表于 2015-2-10 10:36:16

这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。

小魔女 发表于 2015-3-1 09:03:57

兴趣是最好的老师,百度是最好的词典。

因胸联盟 发表于 2015-3-10 13:01:27

做为1门年轻的语言,php一直很努力。

仓酷云 发表于 2015-3-10 20:53:07

对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。

兰色精灵 发表于 2015-3-15 18:34:03

写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。

灵魂腐蚀 发表于 2015-3-17 18:15:25

建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。

再见西城 发表于 2015-3-24 15:48:44

兴趣是最好的老师,百度是最好的词典。

乐观 发表于 2015-3-26 23:49:09

最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。

爱飞 发表于 2015-3-27 09:10:44

个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。

不帅 发表于 2015-3-31 16:53:07

实践是检验自己会不会的真理。

谁可相欹 发表于 2015-4-15 17:34:29

,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。

变相怪杰 发表于 2015-4-25 06:51:43

刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。

深爱那片海 发表于 2015-4-26 15:10:30

多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。

小女巫 发表于 2015-5-4 03:01:35

Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81

admin 发表于 2015-5-8 06:07:20

小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。

小妖女 发表于 2015-6-13 21:32:44

其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。
页: [1]
查看完整版本: PHP网页编程之页码主动顺应局限的分页代码