ページングコンポーネントPHP 5+MSSQL
4079 ワード
<?
class pagerecordset
{
private $cn;
private $rs;
private $totalpage = 0;
private $totalrecord = 0;
private $bpos = 1;
private $epos = 1;
private $row = null;
private $firstpage = 1;
private $prevpage = 1;
private $nextpage = 1;
private $lastpage = 1;
public $pageindex = 1;
public $pagerecordcount = 10;
public function __construct()
{
$ip = func_get_arg(0);
$uid = func_get_arg(1);
$pwd = func_get_arg(2);
$this->cn = mssql_connect($ip , $uid , $pwd) or die("Connection creation fail!");
}
function __destruct()
{
}
public function fetch($sql)
{
$this->rs = mssql_query($sql) or die("Query execution fail!");
$this->totalrecord = mssql_num_rows($this->rs);
if ($this->totalrecord == 0)
{
}
else
{
$this->totalpage = ceil($this->totalrecord / $this->pagerecordcount);
$this->firstpage = 1;
$this->lastpage = $this->totalpage;
$this->prevpage = $this->pageindex - 1;
$this->nextpage = $this->pageindex + 1;
if ($this->prevpage < 1)
{
$this->prevpage = $this->lastpage;
}
if ($this->nextpage > $this->lastpage)
{
$this->nextpage = $this->firstpage;
}
$this->bpos = ($this->pageindex - 1) * $this->pagerecordcount;
$this->epos = $this->bpos + $this->pagerecordcount;
if ($this->epos > $this->totalrecord)
{
$this->epos = $this->totalrecord - $this->bpos + $this->bpos;
}
}
mssql_data_seek($this->rs , $this->bpos) or die("Head locate fail!");
}
public function read()
{
$returnval = false;
if ($this->bpos < $this->epos)
{
$this->row = mssql_fetch_array($this->rs);
$this->bpos++;
$returnval = true;
}
return $returnval;
}
public function getfield($fieldname)
{
$returnval = "";
$returnval = $this->row[$fieldname];
return $returnval;
}
public function getposition()
{
$returnval = -1;
$returnval = $this->bpos;
return $returnval;
}
private function errmsg($funcbody , $errdescription)
{
$returnval = "";
$returnval += "<div style='padding:5px; background:#ffd700; color:#000; font-family:Verdana; font-size:11px;'>";
$returnval += " <div>Fundation:<strong>" + $funcbody + "</strong></div>";
$returnval += " <div>Description:" + $errdescription + "</div>";
$returnval += "</div>";
return $returnval;
}
public function shownavigation($pagequery , $otherquery)
{
$html = "";
$html .= "<div style=\"text-align:center; padding:5px;\">";
$html .= " <div>";
$html .= " <a href=\"?" . $pagequery . "=" . $this->firstpage . $otherquery . "\" style=\"font-family:Webdings; font-size:12px;\">9</a>";
$html .= " <a href=\"?" . $pagequery . "=" . $this->prevpage . $otherquery . "\" style=\"font-family:Webdings; font-size:12px;\">7</a>";
$html .= " " . $this->pageindex;
$html .= " /";
$html .= " " . $this->lastpage;
$html .= " <a href=\"?" . $pagequery . "=" . $this->nextpage . $otherquery . "\" style=\"font-family:Webdings; font-size:12px;\">8</a>";
$html .= " <a href=\"?".$pagequery."=".$this->lastpage.$otherquery."\" style=\"font-family:Webdings; font-size:12px;\">:</a>";
$html .= " </div>";
$html .= "</div>";
echo($html);
}
public function release()
{
mssql_free_result($this->rs) or die("Recordset destroy fail!");
mssql_close($this->cn) or die("Connection close fail!");
}
}
?>