动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
  
   PHP → 阅读文章

 我的一个php_mysql分页类

作者来源: 
阅读 1378 人次 , 2006-3-29 4:17:00 


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>
<?

}
}

 本文Tagsmysql  分页  数据库  
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:将MySQL迁移到Microsoft SQL Server 2000
· 下一篇:PEAR:创建中间的数据库应用层
· 关于PHP中操作MySQL数据库的一些要注意的问题
· 用PHP执行Oracle存储过程示例
· 简单的页面缓冲技术
· AJAX技术在PHP开发中的简单应用
· WDDX 函数库


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077