频道直达 - 专题 - 新闻 - 基础 - 高级 - 安装 - 技巧 - 数据库 - 手册 - PHP - Linux - Java - MySQL - Apache - 麻辣堂 - 狼盟 - Rails社群 - 搜索 - 下载 - 开源 - 论坛
PHP开发资源网 主页>>高级应用>> 收藏此文 | 收藏本站 | 设为首页

我的一个php_mysql分页类

来源:www.phpres.com 作者:Angelover 出处:www.phpres.com 2007-8-7 19:22:01 进入讨论组
关 键 词: 一个 if function page var return this-Parse url this-Link_ID

class RSPage {
var $Debug    =  0;
var $sqoe     =  1; // sqoe= show query on error
var $Link_ID    = 0;
var $Record    = array();
var $Row;
var $numRow;
var $Parse;
var $Error     = "";
var $m_timeFmt = "YYYY-MM-DD HH24:MI:SS";

var $m_num=-1;
var $m_sql;
var $m_pageSize=10;
var $m_cmt;
var    $m_curPage=1;
function open($DB_Link)
{
$this->Link_ID = $DB_Link;
}

function query($Query_String,$page=1,$cnt=-1,$size=10) {
if($Query_String=="")
{
echo "执行语句不能为空!";
return false;
}
if(!$page)
$page = 1;
if(!$cnt)
$cnt = -1;
$this->m_pageSize = $size;

if($this->Parse){
mysql_free_result($this->Parse);
}

if($cnt!=-1){
$this->m_num = $cnt;
}
else{
$result = mysql_query($Query_String, $this->Link_ID);
if(!$result){
$this->Error=mysql_error($this->Link_ID);
}
else{
$this->m_num = mysql_num_rows($result);
}
/*
$cntsql = "select count(*) max_num from ($Query_String)";
$maxnum = 0;
$result = mysql_query($sqlstr,$this->Link_ID);
$ret = mysql_fetch_array($result);
mysql_free_result($result);
if(!$ret) {
$this->Error=mysql_error($this->Link_ID);
}
else {
$this->m_num = $ret["max_num"];
}
*/

}
$pageCount = $this->getPageCount();
$pageSize = $this->getPageSize();
if($page>$pageCount)$page=$pageCount;
if($page<1)$page=1;
$this->m_curPage=$page;
$posBegin = ($page-1)*$pageSize;
$posEnd = $posBegin + $pageSize;
$Query_String = "$Query_String LIMIT $posBegin,$posEnd";
$this->Parse=mysql_query($Query_String,$this->Link_ID);

if(!$this->Parse) {
$this->Error=mysql_error($this->Link_ID);
}
$this->Row=0;

if($this->Debug) {
printf("Debug: query = %s<br>n", $Query_String);
}

if ($this->Error && $this->sqoe)
echo "<BR><FONT color=red><B>".$this->Error["message"]."<BR>Query :"$Query_String"</B></FONT>";
$numRow=mysql_num_rows($this->Parse);
return $this->Parse;
}
function setTimeFormat($timestr){
$this->m_timeFmt = $timestr;
}
function next_record() {
if(!($row = mysql_fetch_array($this->Parse))) {
mysql_free_result($this->Parse);
$this->Parse = false;
$stat=0;
}
else {
while(list($key,$val)=each($row)) {
$colreturn=strtolower($key);
$this->Record[ "$colreturn" ] = $val;
if($this->Debug) echo"<b>[$key]</b>:".$val."<br>n";
}
$stat=1;
}

return $stat;
}

function record_exist() {
if(0 == mysql_num_rows($this->Parse)) {
return 0;
} else {
return 1;
}

return $stat;
}

function seek($pos) {
$this->Row=$pos;
}

function affected_rows() {
return mysql_affected_rows($this->Parse);
}

function num_rows() {
return mysql_num_rows($this->Parse);
}

function f($Name) {
return $this->Record[$Name];
}

function p($Name) {
print $this->Record[$Name];
}

function close() {
if($this->Debug) {
//printf("Disconnecting...<br>n");
}
if($this->Parse){
mysql_free_result($this->Parse);
}
//mysql_close($this->Link_ID);
}

//---public 得到当前页
function getCurPage(){return $this->m_curPage;}
//---public 设定页长
function setPageSize($page_size){$this->m_pageSize = $page_size;}
//---public 得到页长
function getPageSize(){return $this->m_pageSize;}
//---public 得到纪录总数
function getCount(){return $this->m_num;}
//---public 得到页总数
function getPageCount(){
$page=floor($this->getCount()/$this->getPageSize());
if($this->getCount()%$this->getPageSize()>0)$page++;
return $page;
}
// 显示导航条。
// 参数说明: $url    调用页面ex:http://hello.php?showtype=main
function show_navibar($recname="条记录",$first="首页",$pre="上页",$next="下页",$last="末页"){
$showurl = getenv("REQUEST_URI");
$tmppos = strpos($showurl,"&rscnt=");
if(!$tmppos)
$tmppos = strpos($showurl,"?rscnt=");
if($tmppos)
$showurl = substr($showurl,0,$tmppos);
$url = $showurl;
$page = $this->getCurPage();
$pagecnt = $this->getPageCount();
$cnt = $this->getCount();
if($cnt <0)  // 没有分页,不显示任何东西。
return;

if(!strrchr($url,"?"))
$url = $url."?";
else                            // url已经带了参数。
$url = $url."&";

$url = $url."rscnt=".$cnt."&page=";

if($page>1){
?>
<a href=<?echo $url?>1><?=$first?></a> <a href=<?echo $url.($page-1)?>><?=$pre?></a>
<?
}
else{
?>
<?=$first?> <?=$pre?>
<?
}

if($page<$pagecnt){
?>
<a href=<?echo $url.($page+1)?>><?=$next?></a> <a href=<?echo $url.$pagecnt?>><?=$last?></a>
<?
}
else{
?>
<?=$next?> <?=$last?>
<?
}
?>
共有 <font color="#FF0000"><?=$cnt?></font> <?=$recname?>,当前<?=$page?>/<?=$pagecnt?> 
第<input type=text style="width: 20px; height: 16px; font-size: 12px; color: #000000;border: 1px solid;" name=page value=<?=$page?>>页
<input type=button onclick="ice_ttttt_runto('<?=$url?>')" style="height: 16px; font-size: 12px; color: #000000;border: 1px solid;" value="Go!">
<script language=javascript>
<!--
function ice_ttttt_runto(url){
var p = self.page.value;
self.navigate(url+p);
}
--></script>
<?

}
}

欢迎进入PHP开发资源论坛讨论。
收藏此文】【 】【打印】【关闭
相关文章
图文推荐
论 坛 资 源
PHP开发资源网奋斗目标
阅读排行:
热门技术文档
最新图文档
本站编辑推荐:(本站开通Delphi4PHP专区,欢迎进入论坛交流!)
编缉最近更新文章
网站赞助商
搜索您感兴趣的内容
 
   网站首页 -  网站地图 -  网站合作 -  手册中心 -  通用网址 -  网站论坛 -  网站投稿 -  友情链接 -  帮助中心
版权所有:PHP开发资源网 © 2003-2008 通用网址:PHP资源网 合作媒体: 赛迪网IT技术
互联网违法和不良信息举报中心 | 不良信息举报信箱