Show_page は一般的なデータベース ページング クラスです。
Jun 21, 2016 am 08:58 AM分页|数据|数据库
详细介绍:
记得以前总觉得数据库分页麻烦,而网上的一些分页类又总感觉太繁琐,于是这个类就诞生了。: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 if ($end>$this->tpage) {$end=$this->tpage;}
for ($i=$start; $i< =$end; $i++) {
if ($current==$i) {
$this->output.='<font color="red">'.$i.'< ;/フォント> '; //输出当前页数
} 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 が true の場合は文字列を返し、それ以外の場合は直接出力され、デフォルトでは直接出力されます
* @戻り文字列
*/
関数出力($return = false) {
if ($return) {
return $this->output;
} else {
echo $this->output;
}
}
/**
* Limit ステートメントを生成
*
* @access public
* @return string
*/
関数limit() {
return (($this->curr-1)*$this->psize).','.$this->psize;
}
} //クラスを終了
?>

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Windows 11 でウィンドウの境界線の設定を調整する方法: 色とサイズを変更する

Windows 11でタイトルバーの色を変更するにはどうすればよいですか?

Windows 11 でタスクバーのサムネイル プレビューを有効または無効にする方法

Windows 11/10修復におけるOOBELANGUAGEエラーの問題
