<?php/*
* 文件名:datagridclass.php
* 作者:感染源
* 时间:2007-07-25
* 描述:分页类
*/
error_reporting(0);
class datagridclass
{
private $conn;
private $result;
private $resultArr = array();
public $beginrecord = 0;
public $totalrecords = 0;
public $totalpages = 0;
public $currentpage = 0;
public $maxline = 0;
public $maxlist = 0;
function __construct($pHost, $pName, $pPwd, $pDbName, $pMaxLine = 15, $pMaxList = 8)
{
$this->conn = mysql_connect($pHost, $pName, $pPwd) or die('DataBase connecting false...');
mysql_select_db($pDbName, $this->conn) or die('Choice database false...');
$this->maxline = $pMaxLine;
$this->maxlist = $pMaxList;
}//function __construct();
function __set($property_name, $value)
{
$this->$property_name = $value;
}//function __set();
function __destruct()
{
mysql_free_result($this->result);
mysql_close($this->conn);
}//function __destruct();
function readdata($pSql)
{
$this->result = mysql_query($pSql, $this->conn) or die('Select false...');
$this->totalrecords = mysql_num_rows($this->result);
if (!$this->totalrecords)
{
return false;
}
else
{
$this->totalpages = ceil($this->totalrecords / $this->maxline);
$pSql .= ' LIMIT '.$this->beginrecord.','.$this->maxline;
$this->result = mysql_query($pSql, $this->conn) or die('Select false...');
$i = 0;
while ($row = mysql_fetch_array($this->result))
{
$this->resultArr[$i] = $row;
$i++;
}//while
}//if
return $this->resultArr;
}//function readdata();
function navigate()
{
if ($this->totalrecords)
{
$this->currentpage = ($this->beginrecord / $this->maxline) + 1;
$firstpage = 0;
$prevpage = $this->beginrecord - $this->maxline;
$nextpage = $this->beginrecord + $this->maxline;
$lastpage = ($this->totalpages - 1)*$this->maxline;
if ($this->beginrecord == 0)
{
echo '[首页] [上一页] ';
}
else
{
echo "<a href='".$_SERVER['PHP_SELF']."?beginrecord=$firstpage'>[首页]</a> ";
echo "<a href='".$_SERVER['PHP_SELF']."?beginrecord=$prevpage'>[上一页]</a> ";
}
if ($this->currentpage <= $this->maxlist)
{
for ($i=1; $i<=$this->maxlist; $i++)
{
$pagerecord = ($i - 1)*$this->maxline;
if ($this->currentpage == $i)
{
echo "<a href='".$_SERVER['PHP_SELF']."?beginrecord=$pagerecord'>[$i]</a> ";
}
else
{
echo "<a href='".$_SERVER['PHP_SELF']."?beginrecord=$pagerecord'>$i</a> ";
}//if
}//for
}
elseif ($this->currentpage > ($this->totalpages-$this->maxlist))
{
for ($i=($this->maxlist); $i>0; $i--)
{
$pagerecord = ($this->totalpages - $i)*$this->maxline;
if ($this->currentpage == ($this->totalpages-$i+1))
{
echo "<a href='".$_SERVER['PHP_SELF']."?beginrecord=$pagerecord'>[".($this->totalpages - $i +1)."]</a> ";
}
else
{
echo "<a href='".$_SERVER['PHP_SELF']."?beginrecord=$pagerecord'>".($this->totalpages - $i+1)."</a> ";
}//if
}//for
}
else
{
$j = ceil($this->maxlist / 2);
for ($i = $j; $i>=0; $i--)
{
if ($this->currentpage == ($this->currentpage-$i))
{
echo "<a href='".$_SERVER['PHP_SELF']."?beginrecord=".(($this->currentpage-$i-1)*$this->maxline)."'>[".($this->currentpage-$i)."]</a> ";
}
else
{
echo "<a href='".$_SERVER['PHP_SELF']."?beginrecord=".(($this->currentpage-$i-1)*$this->maxline)."'>".($this->currentpage-$i)."</a> ";
}
}
for ($i = 1; $i<=$j; $i++)
{
echo "<a href='".$_SERVER['PHP_SELF'].'?beginrecord='.(($this->currentpage+$i-1)*$this->maxline)."'>".($this->currentpage+$i)."</a> ";
}
}
if ($this->beginrecord == $lastpage)
{
echo '[下一页] [末页]';
}
else
{
echo "<a href='".$_SERVER['PHP_SELF']."?beginrecord=$nextpage'>[下一页]</a> ";
echo "<a href='".$_SERVER['PHP_SELF']."?beginrecord=$lastpage'>[末页]</a>";
}
//echo "$this->currentpage / $this->totalpages,共有记录数:$this->totalrecords";
}
}
}

/*/test
$dg = new datagridclass('localhost','root','root','test',2,5);
if (isset($_GET['beginrecord']))
{
$dg->__set('beginrecord', $_GET['beginrecord']);
}
else
{
$dg->__set('beginrecord', 0);
}
$rs = $dg->readdata('select * from testuser');
if(!$rs)
{
echo '暂无数据……';
}
else
{
$i=0;
echo "<table width='40%' border='1'>";
echo "<tr><td>id</td><td>name</td></tr>";
while($i<count($rs))
{
echo "<tr><td>";
echo $rs[$i]['id'];
echo "</td><td>".$rs[$i]['uname'];
echo "</td></tr>";
$i++;
}
echo "</tale>";
}
$dg->navigate();
$dg = NULL;
*/
?>
149

被折叠的 条评论
为什么被折叠?



