仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 813|回复: 19
打印 上一主题 下一主题

[学习教程] PHP网站制作之Show_page 一个通用的数据库分页类

[复制链接]
谁可相欹 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:54:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
从刚开始练习的PHP基础语法练习,到PHP语言在WEB中的应用,再到实际的项目开发,如留言版,相册系统,中小型公司网站系统,以及期间做过的有关团队合作的小游戏,让我受益匪浅,学到了很多。分页|数据|数据库   具体引见:
   记得之前总感觉数据库分页费事,而网上的一些分页类又总感到太繁琐,因而这个类就出生了。:D
现在写这个类的时分就是想把分页复杂化。您在利用这个类的时分只需把纪录数,页数巨细和要传递的变量传过去,剩下的一切城市主动弄定。有甚么成绩请到服装论坛提出。


<?php
/**
* 一个用于Mysql数据库的分页类
*
* @author      Avenger <avenger@php.net>
* @version     1.0
* @lastupdate  2003-04-08 11:11:33
*
*
* 利用实例:
* $p = new show_page;  //创立新对像
* $p->file="ttt.php";  //设置文件名,默许为以后页
* $p->pvar="pagecount"; //设置页面传递的参数,默许为p
* $p->setvar(array("a" => '1', "b" => '2')); //设置要传递的参数,要注重的是此函数必需要在 set 前利用,不然变量传不外去
* $p->set(20,2000,1);  //设置相干参数,共三个,分离为'页面巨细'、'总纪录数'、'以后页(假如为空则主动读取GET变量)'
* $p->output(0);   //输入,为0时直接输入,不然前往一个字符串
* echo $p->limit();  //输入Limit子句。在sql语句顶用法为 "SELECT * FROM TABLE LIMIT {$p->limit()}";
*
*/


class show_page {
    /**
     * 页面输入了局
     *
     * @var string
     */
var $output;
    /**
     * 利用该类的文件,默许为 PHP_SELF
     *
     * @var string
     */
var $file;
    /**
     * 页数传递变量,默许为 'p'
     *
     * @var string
     */
var $pvar = "p";
    /**
     * 页面巨细
     *
     * @var integer
     */
var $psize;
    /**
     * 以后页面
     *
     * @var ingeger
     */
var $curr;
    /**
     * 要传递的变量数组
     *
     * @var array
     */
var $varstr;
    /**
     * 总页数
     *
     * @var integer
     */
    var $tpage;
    /**
     * 分页设置
     *
     * @access public
     * @param int $pagesize 页面巨细
     * @param int $total    总纪录数
     * @param int $current  以后页数,默许会主动读取
     * @return void
     */
    function set($pagesize=20,$total,$current=false) {
  global $HTTP_SERVER_VARS,$HTTP_GET_VARS;
  $this->tpage = ceil($total/$pagesize);
  if (!$current) {$current = $HTTP_GET_VARS[$this->pvar];}
  if ($current>$this->tpage) {$current = $this->tpage;}
  if ($current<1) {$current = 1;}
  $this->curr  = $current;
  $this->psize = $pagesize;
  if (!$this->file) {$this->file = $HTTP_SERVER_VARS['PHP_SELF'];}
  if ($this->tpage > 1) {
            
   if ($current>10) {
    $this->output.='<a href='.$this->file.'?'.$this->pvar.'='.($current-10).($this->varstr).' title="前十页"><<<</a> ';
   }
            if ($current>1) {
    $this->output.='<a href='.$this->file.'?'.$this->pvar.'='.($current-1).($this->varstr).' title="前一页"><<</a> ';
   }
            $start = floor($current/10)*10;
            $end = $start+9;
            if ($start<1)   {$start=1;}
            if ($end>$this->tpage) {$end=$this->tpage;}
            for ($i=$start; $i<=$end; $i++) {
                if ($current==$i) {
                    $this->output.='<font color="red">'.$i.'</font> ';    //输入以后页数
                } else {
                    $this->output.='<a href="'.$this->file.'?'.$this->pvar.'='.$i.$this->varstr.'">['.$i.']</a> ';    //输入页数
                }
            }
            if ($current<$this->tpage) {
    $this->output.='<a href='.$this->file.'?'.$this->pvar.'='.($current+1).($this->varstr).' title="下一页">>></a> ';
   }
            if ($this->tpage>10 && ($this->tpage-$current)>=10 ) {
    $this->output.='<a href='.$this->file.'?'.$this->pvar.'='.($current+10).($this->varstr).' title="下十页">>>></a>';
   }
  }
}
    /**
     * 要传递的变量设置
     *
     * @access public
     * @param array $data   要传递的变量,用数组来暗示,拜见下面的例子
     * @return void
     */
function setvar($data) {
  foreach ($data as $k=>$v) {
   $this->varstr.='&'.$k.'='.urlencode($v);
  }
}
    /**
     * 分页了局输入
     *
     * @access public
     * @param bool $return 为真时前往一个字符串,不然直接输入,默许直接输入
     * @return string
     */
function output($return = false) {
  if ($return) {
   return $this->output;
  } else {
   echo $this->output;
  }
}
    /**
     * 生成Limit语句
     *
     * @access public
     * @return string
     */
    function limit() {
  return (($this->curr-1)*$this->psize).','.$this->psize;
}
} //End Class
?>

PHP于1994年由Rasmus Lerdorf创建,刚刚开始是Rasmus Lerdorf为了要维护个人网页而制作的一个简单的用Perl语言编写的程序。
小妖女 该用户已被删除
沙发
发表于 2015-2-4 06:57:32 | 只看该作者
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
兰色精灵 该用户已被删除
板凳
发表于 2015-2-6 00:14:22 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
乐观 该用户已被删除
地板
发表于 2015-2-7 02:54:22 | 只看该作者
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
不帅 该用户已被删除
5#
发表于 2015-2-19 22:20:34 | 只看该作者
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
变相怪杰 该用户已被删除
6#
发表于 2015-2-21 06:29:18 | 只看该作者
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
柔情似水 该用户已被删除
7#
发表于 2015-2-21 14:39:49 | 只看该作者
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
谁可相欹 该用户已被删除
8#
 楼主| 发表于 2015-2-23 21:44:20 | 只看该作者
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
再见西城 该用户已被删除
9#
发表于 2015-3-2 09:15:25 | 只看该作者
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
深爱那片海 该用户已被删除
10#
发表于 2015-3-3 15:40:33 | 只看该作者
有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。
再现理想 该用户已被删除
11#
发表于 2015-3-12 19:26:24 | 只看该作者
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
若天明 该用户已被删除
12#
发表于 2015-3-20 01:49:20 | 只看该作者
其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。
金色的骷髅 该用户已被删除
13#
发表于 2015-3-26 14:02:06 | 只看该作者
对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
愤怒的大鸟 该用户已被删除
14#
发表于 2015-3-26 21:26:57 | 只看该作者
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
小魔女 该用户已被删除
15#
发表于 2015-3-27 05:09:15 | 只看该作者
其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。
admin 该用户已被删除
16#
发表于 2015-4-1 00:51:56 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
飘飘悠悠 该用户已被删除
17#
发表于 2015-4-10 11:43:49 | 只看该作者
我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。
冷月葬花魂 该用户已被删除
18#
发表于 2015-4-11 19:58:49 | 只看该作者
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
活着的死人 该用户已被删除
19#
发表于 2015-5-1 07:08:58 | 只看该作者
做为1门年轻的语言,php一直很努力。
若相依 该用户已被删除
20#
发表于 2015-5-4 03:30:15 | 只看该作者
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-20 17:46

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表