哪位大哥,能否提供一个基于ADOdb的分页类。 adodb 自己有一个 pagequery函数的,自己在adodb的手册里面查查看.帮忙点击一下: http://www.qq6.com/?28566763 , thanks 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 adodb要配合smaty用好像比较好,好像www.phpx.com有一个adodb的使用手册 你先看看 asp的分页函数吧, 用pear得slide类 很方便得pear.php.net 我贴我的,adodb+smarty的 . 天下代码一大抄,忘记是改谁的了<?phpclass Page{ /* * 每页显示记录类 * @var integer */ var $psize = 10; /* * 页码偏移量 * @var integer */ var $pernum = 5; /* * 要传递的变量数组 * @var string */ var $varstr = ''; /* * 总页数 * @var integer */ var $tpage = 0; /* * 记录组总数 * @var integer */ var $pers = 0; /* * SQL server 分页支点 * @var integer */ var $sid = 0; /* * 当前页码 * @var integer */ var $page = 0; /* * MySQL分页生成语句 * @var string */ var $limit = ''; var $page_stmt; //分页sql语句 var $list; //数据数组 /* * 取得传递变量精数组,并检测它是否为空 * @return v */ function get() { foreach($_GET as $k => $v) { $i++; $str = ($i==1) ? '?' : '&'; $this->varstr = ($k<>'page') ? $this->varstr.$str.$k.'='.$v : $this->varstr; } $this->varstr = $this->varstr ? $this->varstr.'&' : '?'; $this->page = $_GET['page'] ? $_GET['page'] : 1; // 用于 SQL server 分页记录读取值 // $this->sid = ($this->page-1)*$this->psize; // 用于 MySQL 分页生成语句 // $this->limit = ($this->page -1)*$this->psize.','.$this->psize; } /* * 统计页码数 */ function total($number) { $this->tpage = ceil($number / $this->psize); $this->pers = ceil($this->tpage / $this->pernum); } /* * 初始化,传入一个sql数值 */ function Page($sql,$psize=10){ $this->page_stmt = $sql; $this->psize = $psize; } function JumpBar() { $number = $this->getRecordCounts(); $this->get(); $this->total($number); $setpage = $this->page ? ceil($this->page/$this->pernum) : 1; $pagenum = ($this->tpage > $this->pernum) ? $this->pernum : $this->tpage; if ($number <= $this->psize) { $text = '只有一页'; } else { $text = '共 ( '.$this->tpage.' 页 ) : '; if ($this->page > 1) { $text .= '<a title=第一页 href='.$this->varstr.'page=1>[1]</a>...'; } if ($setpage > 1) { $lastsetid = ($setpage-1)*$this->pernum; $text .= '<a title=上一列 href='.$this->varstr.'page='.$lastsetid.'>[<<]</a>'; } if ($this->page > 1) { $pre = $this->page-1; $text .= '<a title=上一页 href='.$this->varstr.'page='.$pre.'>[<]</a>'; } $i = ($setpage-1)*$this->pernum; for($j=$i; $j<($i+$pagenum) && $j<$this->tpage; $j++) { $newpage = $j+1; if ($this->page == $j+1) { $text .= '<b>['.($j+1).']</b>'; } else { $text .= '<a href='.$this->varstr.'page='.$newpage.'>['.($j+1).']</a>'; } } if ($this->page < $this->tpage){ $next = $this->page+1; $text .= '<a title=下一页 href='.$this->varstr.'page='.$next.'>[>]</a>'; } if ($setpage < $this->pers) { $nextpre = $setpage*($this->pernum+1); $text .= '<a title=下一列 href='.$this->varstr.'page='.$nextpre.'>[>>]</a>'; } if ($this->page < $this->tpage) { $text .= '...<a title=最后一页 href='.$this->varstr.'page='.$this->tpage.'>['.$this->tpage.']</a>'; } } return $text; } function getRecordCounts(){ global $conn; $res = $conn->Execute($this->page_stmt); if($res){ return $res->recordCount(); } else { return 0; } } function getData(){ return array('JumpBar'=>$this->JumpBar(), 'list'=>$this->setData()); } function setData(){ global $conn; $res = $conn->SelectLimit($this->page_stmt,$this->psize,$this->sid); $temp = array(); while($res && !$res->EOF){ array_push($temp,$res->fields); $res->MoveNext(); } return $temp; }}?> 用法 function PageList(){ global $conn,$smarty; if($this->pageList_stmt==""){ $this->pageList_stmt = "SELECT * FROM {$this->tblName}"; } $page = new Page($this->pageList_stmt,$this->pageSize); return $page->getData(); }然后在显示就 {*xx.JumpBar*} 在你下载的adodb中就有手册的,另外adodb自己提供了分页的功能, 用这个方法$rs = $DB->PageExecute($sql_sel,$page_pre_rows,$curr_page); 我这个怎么做比较好呢? 用curl函数POST之后怎么只获取header 帮忙改下代码,谢谢! 急需武汉的程序员合作 自定义函数怎么调用? 数据库中的数据转入别的数据库中,在线等 问了一天没解决的问题,等待高手指教!!! php报表 困惑呀 不知道用那种语言好 如何控制用com调用的文档存储? 飞刀,又见飞刀!~~~如何用mail发送HTML格式的邮件?? 如何统计页面上一个链接被访问的次数,不使用跳转
pear.php.net
<?php
class Page
{
/*
* 每页显示记录类
* @var integer
*/
var $psize = 10; /*
* 页码偏移量
* @var integer
*/
var $pernum = 5; /*
* 要传递的变量数组
* @var string
*/
var $varstr = ''; /*
* 总页数
* @var integer
*/
var $tpage = 0; /*
* 记录组总数
* @var integer
*/
var $pers = 0; /*
* SQL server 分页支点
* @var integer
*/
var $sid = 0; /*
* 当前页码
* @var integer
*/
var $page = 0; /*
* MySQL分页生成语句
* @var string
*/
var $limit = ''; var $page_stmt; //分页sql语句 var $list; //数据数组
/*
* 取得传递变量精数组,并检测它是否为空
* @return v
*/
function get()
{
foreach($_GET as $k => $v) {
$i++;
$str = ($i==1) ? '?' : '&';
$this->varstr = ($k<>'page') ? $this->varstr.$str.$k.'='.$v : $this->varstr;
}
$this->varstr = $this->varstr ? $this->varstr.'&' : '?';
$this->page = $_GET['page'] ? $_GET['page'] : 1;
// 用于 SQL server 分页记录读取值 //
$this->sid = ($this->page-1)*$this->psize; // 用于 MySQL 分页生成语句 //
$this->limit = ($this->page -1)*$this->psize.','.$this->psize;
}
/*
* 统计页码数
*/
function total($number)
{
$this->tpage = ceil($number / $this->psize);
$this->pers = ceil($this->tpage / $this->pernum);
}
/*
* 初始化,传入一个sql数值
*/ function Page($sql,$psize=10){
$this->page_stmt = $sql;
$this->psize = $psize;
} function JumpBar()
{
$number = $this->getRecordCounts();
$this->get();
$this->total($number); $setpage = $this->page ? ceil($this->page/$this->pernum) : 1;
$pagenum = ($this->tpage > $this->pernum) ? $this->pernum : $this->tpage;
if ($number <= $this->psize) {
$text = '只有一页';
} else {
$text = '共 ( '.$this->tpage.' 页 ) : ';
if ($this->page > 1) {
$text .= '<a title=第一页 href='.$this->varstr.'page=1>[1]</a>...';
}
if ($setpage > 1) {
$lastsetid = ($setpage-1)*$this->pernum;
$text .= '<a title=上一列 href='.$this->varstr.'page='.$lastsetid.'>[<<]</a>';
}
if ($this->page > 1) {
$pre = $this->page-1;
$text .= '<a title=上一页 href='.$this->varstr.'page='.$pre.'>[<]</a>';
}
$i = ($setpage-1)*$this->pernum;
for($j=$i; $j<($i+$pagenum) && $j<$this->tpage; $j++) {
$newpage = $j+1;
if ($this->page == $j+1) {
$text .= '<b>['.($j+1).']</b>';
} else {
$text .= '<a href='.$this->varstr.'page='.$newpage.'>['.($j+1).']</a>';
}
}
if ($this->page < $this->tpage){
$next = $this->page+1;
$text .= '<a title=下一页 href='.$this->varstr.'page='.$next.'>[>]</a>';
}
if ($setpage < $this->pers) {
$nextpre = $setpage*($this->pernum+1);
$text .= '<a title=下一列 href='.$this->varstr.'page='.$nextpre.'>[>>]</a>';
}
if ($this->page < $this->tpage) {
$text .= '...<a title=最后一页 href='.$this->varstr.'page='.$this->tpage.'>['.$this->tpage.']</a>';
}
}
return $text;
} function getRecordCounts(){
global $conn;
$res = $conn->Execute($this->page_stmt);
if($res){
return $res->recordCount();
} else {
return 0;
}
} function getData(){
return array('JumpBar'=>$this->JumpBar(),
'list'=>$this->setData());
} function setData(){
global $conn;
$res = $conn->SelectLimit($this->page_stmt,$this->psize,$this->sid);
$temp = array();
while($res && !$res->EOF){
array_push($temp,$res->fields);
$res->MoveNext();
}
return $temp;
}
}
?>
function PageList(){
global $conn,$smarty;
if($this->pageList_stmt==""){
$this->pageList_stmt = "SELECT * FROM {$this->tblName}";
}
$page = new Page($this->pageList_stmt,$this->pageSize);
return $page->getData();
}
然后在显示就 {*xx.JumpBar*}
$rs = $DB->PageExecute($sql_sel,$page_pre_rows,$curr_page);