自己写一个分页显示的类_PHP
程序员文章站
2022-05-13 14:45:12
...
class.php:
/*
-----------------------------------------------------------------------------------------------
名称:TurnPage
作用:分页显示
成员函数:
Entrance():类的入口,参数是所有成员函数的参数
SelectData($connection,$query):选择数据的函数,返回一个数组
ShowData($array,$i,$j):显示各个字段值的函数,返回一个值
MakeTable($array,$intPageBegin,$intPageEnd):生成表格的函数,根据要显示的字段的个数生成相应的表格,参数分别是:数组,每页开始的信息序号,每页结束的信息序号
MakeLink($parameter=null):显示翻页的链接,参数可选
GetFileName(): 取出当前执行文件名字,返回文件名
函数之间的关系:
-----------------------------------------------------------------------------------------------
*/
class TurnPage
{
var $strArray;
var $cols;
var $rows;
var $strFieldName;
var $intPageBegin;
var $intPageEnd;
function Entrance($connection,$query)
{
$myArray=$this->SelectData($connection,$query);
$this->GetFileName();
$this->MakeLink($parameter=null);
$this->MakeTable($myArray,$this->intPageBegin,$this->intPageEnd);
}
function SelectData($connection,$query)
{
$result=@mysql_query($query,$connection) or die("unable to select the data!");
$intFieldsNum=mysql_num_fields($result);
for($a=0;$a {
$this->strFieldName[$a]=mysql_field_name($result,$a);
}
$this->cols=$intFieldsNum;
$count=0;
while($rows=mysql_fetch_row($result))
{
for($i=0;$i {
$data[$count][$i]=trim($rows[$i]);
}
$count++;
}
$this->rows=count($data);
$this->strArray=$data;
return $this->strArray;
}
function ShowData($array,$i,$j)
{
return $array[$i][$j];
}
function MakeTable($array,$intPageBegin,$intPageEnd)
{
echo "";
";
}
function GetFileName()
{
$strPath=$_SERVER['PHP_SELF'];
$strFileName=trim(substr($strPath,(strrpos($strPath,"/")+1)));
return $strFileName;
}
function MakeLink($parameter=null)
{
if($parameter==null)
{
$strParam=null;
}
else
{
$strParam=$parameter;
}
if($_GET["intPage"]==null)
{
$intPage=1;
}
else
{
$intPage=trim($_GET['intPage']);
}
$intPerPage=10;
$total=$this->rows;
$strFile=$this->GetFileName();
$intPageBegin=$intPerPage*$intPage-$intPerPage;
$this->intPageBegin=$intPageBegin;
if ($intPage*$intPerPage {
$intPageEnd=$intPageBegin+$intPerPage;
}
else
{
$intPageEnd=$total;
}
$this->intPageEnd=$intPageEnd;
echo "
";
}
}
?>
test.php:
include("../common/connection.php"); //连接数据库的操作
include("../common/class.php"); //把上面的文件包含近来
$query="select * from uphoto order by intUID asc";
$test=new TurnPage;
$test->Entrance($connection,$query);
?>
/*
-----------------------------------------------------------------------------------------------
名称:TurnPage
作用:分页显示
成员函数:
Entrance():类的入口,参数是所有成员函数的参数
SelectData($connection,$query):选择数据的函数,返回一个数组
ShowData($array,$i,$j):显示各个字段值的函数,返回一个值
MakeTable($array,$intPageBegin,$intPageEnd):生成表格的函数,根据要显示的字段的个数生成相应的表格,参数分别是:数组,每页开始的信息序号,每页结束的信息序号
MakeLink($parameter=null):显示翻页的链接,参数可选
GetFileName(): 取出当前执行文件名字,返回文件名
函数之间的关系:
-----------------------------------------------------------------------------------------------
*/
class TurnPage
{
var $strArray;
var $cols;
var $rows;
var $strFieldName;
var $intPageBegin;
var $intPageEnd;
function Entrance($connection,$query)
{
$myArray=$this->SelectData($connection,$query);
$this->GetFileName();
$this->MakeLink($parameter=null);
$this->MakeTable($myArray,$this->intPageBegin,$this->intPageEnd);
}
function SelectData($connection,$query)
{
$result=@mysql_query($query,$connection) or die("unable to select the data!");
$intFieldsNum=mysql_num_fields($result);
for($a=0;$a {
$this->strFieldName[$a]=mysql_field_name($result,$a);
}
$this->cols=$intFieldsNum;
$count=0;
while($rows=mysql_fetch_row($result))
{
for($i=0;$i {
$data[$count][$i]=trim($rows[$i]);
}
$count++;
}
$this->rows=count($data);
$this->strArray=$data;
return $this->strArray;
}
function ShowData($array,$i,$j)
{
return $array[$i][$j];
}
function MakeTable($array,$intPageBegin,$intPageEnd)
{
echo "
".$this->strFieldName[$m]." | ";
".$this->ShowData($array,$i,$j)." | ";
}
function GetFileName()
{
$strPath=$_SERVER['PHP_SELF'];
$strFileName=trim(substr($strPath,(strrpos($strPath,"/")+1)));
return $strFileName;
}
function MakeLink($parameter=null)
{
if($parameter==null)
{
$strParam=null;
}
else
{
$strParam=$parameter;
}
if($_GET["intPage"]==null)
{
$intPage=1;
}
else
{
$intPage=trim($_GET['intPage']);
}
$intPerPage=10;
$total=$this->rows;
$strFile=$this->GetFileName();
$intPageBegin=$intPerPage*$intPage-$intPerPage;
$this->intPageBegin=$intPageBegin;
if ($intPage*$intPerPage {
$intPageEnd=$intPageBegin+$intPerPage;
}
else
{
$intPageEnd=$total;
}
$this->intPageEnd=$intPageEnd;
echo "
信息总数:".$this->rows." | "; if($intPage>1) { echo "上一页"; } echo " |
"; if ($intPage*$intPerPage { echo "下一页"; } echo " |
}
}
?>
test.php:
include("../common/connection.php"); //连接数据库的操作
include("../common/class.php"); //把上面的文件包含近来
$query="select * from uphoto order by intUID asc";
$test=new TurnPage;
$test->Entrance($connection,$query);
?>