|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
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语言编写的程序。 |
|