社区
基础编程
帖子详情
★ 请问怎么使用PHP在Oracle里做分页!?
phpphp
2004-11-26 04:29:36
要最容易理解 和最容易使的(我是个初学者)
最好不使类:)
谢谢!!
...全文
232
9
打赏
收藏
★ 请问怎么使用PHP在Oracle里做分页!?
要最容易理解 和最容易使的(我是个初学者) 最好不使类:) 谢谢!!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
piner
2004-11-27
打赏
举报
回复
OCIFetchStatement($Parse,$record,$offset,$maxline,OCI_FETCHSTATEMENT_BY_ROW)
-神仙-
2004-11-27
打赏
举报
回复
不是和mysql差不多的吗?????
phpphp
2004-11-27
打赏
举报
回复
adodb 是啥?连数据库的?咋使?:P
黑夜路人(heiyeluren)
2004-11-26
打赏
举报
回复
建议用adodb或者db来做,呵呵
jxyuhua
2004-11-26
打赏
举报
回复
<?php
//PEAR中的Pager文件,自己可以下载
include_once('Pager/Pager.php');
$products = getResult($keywords);//将要显示的数据,数组类型
$params = array(
'mode' => 'Jumping',
'perPage' => 5,
'delta' => 5,
'itemData' => $products,
'linkClass' => 'pageResults',
);
$pager = & Pager::factory($params);
$page_data = $pager->getPageData();
$links = $pager->getLinks();
$selectBox = $pager->getPerPageSelectBox();
$pageOffset = $pager->getOffsetByPageId();
for ($i=$pageOffset[0]-1; $i<$pageOffset[1]; $i++) {
//显示
}
echo "Result Pages: " .$links['all'];
$display = "Displaying %d to %d (of %d products)";
printf($display, $pageOffset[0], $pageOffset[1], $pager->numItems());
hahawen
2004-11-26
打赏
举报
回复
楼上的写的对,oricle的分页要通过子查询来实现, 所以不建议自己写,建议用adodb来处理数据库问题
erldy
2004-11-26
打赏
举报
回复
PHP+ORACLE 分页代码:
//分页程序开始
$display_rows = 10;
$sql = "SELECT COUNT(*) FROM $tbl where msg_sort_id=$sid";
$stmt = Query($c245,$sql);
if (OCIFetch($stmt)) {
$num_rows = OCIResult($stmt,1);
} else {
$num_rows = 0;
}
OCIFreeStatement($stmt);
$page = $_GET['page'];
if (empty($page) || $page == 0) {
$page = 1;
}
$start_range = (($page - 1) * $display_rows) + 1;
$end_range = $page * $display_rows;
$sql = "SELECT msg_id,msg_content,msg_sort_id,msg_sort_name,msg_hide,msg_commend,msg_hits,ROW_NO FROM (SELECT msg_id,";
$sql .= "msg_content,msg_sort_id,msg_sort_name,msg_hide,msg_commend,msg_hits,ROWNUM ROW_NO FROM (SELECT msg_id,msg_content,";
$sql .= "msg_sort_id,msg_sort_name,msg_hide,msg_commend,msg_hits FROM $tbl where msg_sort_id=$sid ORDER BY msg_id desc)) WHERE ROW_NO BETWEEN ";
$sql .= $start_range." AND ".$end_range;
//显示数据
if ($num_rows != 0) {
$stmt = Query($c245,$sql);
while(OCIFetchInto($stmt, &$ary)) {
……
}
}
//显示导航条
if ($num_rows % $display_rows == 0) {
$total_pages = $num_rows / $display_rows;
} else {
$total_pages = ($num_rows / $display_rows) + 1;
settype($total_pages, integer);
}
if ($page != 1) {
echo "<a href='".$PHP_SELF."?page=".($page - 1)."&sid=".$sid."'>上一页</a>";
}
for ($i = 1; $i <= $total_pages; $i++) {
if ($page == $i){
echo " ".$i;
} else {
echo " <a href='".$PHP_SELF."?page=".$i."&sid=".$sid."'>".$i."</a>";
}
}
if ($page < $total_pages) {
echo " <a href='".$PHP_SELF."?page=".($page + 1)."&sid=".$sid."'>下一页</a>";
}
echo " 总页数: <b><font color=red>".$total_pages."</font></b> 总记录数: <b><font color=red>".$num_rows."</font></b>";
//结束分页
用三层子查询来实现,效率很高!
leyan728
2004-11-26
打赏
举报
回复
/**
* @函数功能:显示系统用户
* @函数作者:乐言 www.leyan.net
* @函数参数: $setid -> 起始记录数
* $list_num -> 显示记录条数
* $swjg_dm -> 税务机关代码
* @函数返回:
* @修改时间:2004-11-22
*/
function list_user($setid,$list_num,$swjg_dm){
require ("include/config.php");
if(@$conn=OCILogon("$dbuser","$dbpasswd","$dbname")):
// 计算起始记录数
if (empty($setid)):
$setid = 0;
endif;
$setidend=1+$setid+$list_num;
$list_user_sql="select * from (select rownum rn,ry_dm,ry_mc,ry_mm,ry_gwzz,ry_qx,swjg_dm,zg_dm from ".$user_table." where rownum<".$setidend." and swjg_dm=".$swjg_dm.") where rn>".$setid." and swjg_dm=".$swjg_dm." ORDER BY ry_qx DESC";
$list_user=OCIParse($conn,$list_user_sql);
OCIDefineByName($list_user,"RY_DM",$ry_dm);
OCIDefineByName($list_user,"RY_MC",$ry_mc);
OCIDefineByName($list_user,"RY_QX",$ry_qx);
OCIDefineByName($list_user,"ZG_DM",$zg_dm);
OCIExecute($list_user);
$bgcolor=true;
while(OCIFetch($list_user)){
if ($bgcolor):
echo "<tr bgcolor='#EFEFEF' align=center>";
else:
echo "<tr bgcolor='#FFFFFF' align=center>";
endif;
echo "<td>".$ry_dm."</td><td>".$ry_mc."</td>";
echo "<td>";
if ($ry_qx==1):
echo "一般用户";
elseif ($ry_qx==2):
echo "抽查人";
else:
echo "系统管理员";
endif;
echo "</td><td>";
if ($zg_dm!="0"):
echo ry_info($zg_dm,"ry_mc");
endif;
echo "</td><td><a href=\"?action=userinfo&ry_dm=".$ry_dm."\" class=menu>编辑</a>|<a href=\"javascript:Delete('".$ry_dm."')\" class=menu>删除</a></td></tr>";
$bgcolor=!$bgcolor;
}
OCILogoff($conn);
else:
OCILogoff($conn);
echo "系统忙,请稍候访问!";
echo "系统将2秒中后返回上一页!";
echo "<META HTTP-EQUIV=REFRESH CONTENT='2;URL=javascript:history.back(1)'> ";
endif;
} // 结束
/**
* @函数功能:用户分页显示
* @函数作者:乐言 www.leyan.net
* @函数参数: $table_name -> 分页表格名称
* $query_condition -> 查询的条件语句
* $list_num -> 显示记录条数
* $list_page_num -> 每列显示页数
* $setid -> 数据起始id
* @函数返回:
* @修改时间:
*/
function list_page($table_name,$query_condition,$list_num,$list_page_num,$setid){
require ("include/config.php");
if(@$conn=OCILogon("$dbuser","$dbpasswd","$dbname")):
if ($query_condition==""):
$query_sql="select count(1) as rcnt from ".$table_name."";
else:
$query_sql="select count(1) as rcnt from ".$table_name." where ".$query_condition."";
endif;
$list_page=OCIParse($conn,$query_sql);
OCIDefineByName($list_page,"RCNT",$rcnt);
OCIExecute($list_page);
OCIFetch($list_page);
// 计算页数
$pages = ceil($rcnt/$list_num);
if ($setid > 0):
$setpage1 = ceil($setid/$list_num);
$setpage = ceil(($setpage1+1)/$list_page_num);
else:
$setpage = 1;
endif;
if ($pages > $list_page_num):
$pagenum = $list_page_num;
else:
$pagenum = $pages;
endif;
$issetid = ceil(($setid+1)/$list_num);
$issetpage = $issetid % $list_page_num;
// 第一页
if ($setpage > 1):
echo "<a title='第一页' href='?setpage=1&setid=0' class=write>[第1页]</a>\n";
endif;
// 上一列
if ($setpage > 1):
$lastpage = $setpage-1;
$lastsetid = ($setpage-2)*$list_page_num*$list_num;
echo "<a title='上一列' href='?setpage=".$lastpage."&setid=".$lastsetid."' class=write>[<<]</a>\n";
endif;
// 上一页
if ($setid > 0):
if ($issetpage == 1):
$newsetpage = $setpage-1;
else:
$newsetpage = $setpage;
endif;
$presetid = $setid-$list_num;
echo "<a title='上一页' href='?setpage=".$newsetpage."&setid=".$presetid."' class=write>[<]</a>\n";
endif;
// 列出页
$i1 = ($setpage-1)*$list_page_num;
for ($i=$i1; $i<($i1+$pagenum) && $i<$pages; $i++)
{
$newsetid=$list_num*$i;
if (($setid/$list_num) == $i):
echo "<b><font color=red>[第".($i+1)."页]</font></b> \n";
else:
echo "<a href='?setpage=".$setpage."&setid=".$newsetid."' class=write>[第".($i+1)."页]</a>\n";
endif;
}
// 下一页
if ($pages!=0 && ($setid/$list_num+1)!=$pages && ($setid/$list_num+1)<=$pages||$setid==1):
if ($list_page_num-$issetpage == 0 || $issetpage == 0):
$newsetpage = $setpage+1;
else:
$newsetpage = $setpage;
endif;
$newsetid = $setid+$list_num;
echo "<a title='下一页' href='?setpage=".$newsetpage."&setid=".$newsetid."' class=write>[>]</a>\n";
endif;
// 下一列
if ($pages!=0 && $pages>$list_page_num && $setpage<$page):
$nextpage = $setpage+1;
$nextsetid = $setpage*$list_page_num*$list_num;
echo "<a title='下一列' href='?setpage=".$nextpage."&setid=".$nextsetid."' class=write>[>>]</a>\n";
endif;
// 最后一页
if ($pages>$list_page_num && $setpage<$page):
$lastpage = $list_num*($pages-1);
echo "<a title='最后一页' href='?setpage=".$page."&setid=".$lastpage."' class=write>[第".$pages."页]</a>\n";
endif;
OCILogoff($conn);
else:
error("系统繁忙,请稍后再试!");
echo "<META HTTP-EQUIV=REFRESH CONTENT='0;URL=javascript:history.back(1)'> ";
exit;
endif;
} // 结束
----------------------------------------
楼主可以看看吧,这是我写的分页函数.起始最重要的就是那句sql语句!
uGain
2004-11-26
打赏
举报
回复
建议你使用adodb.
Oracle
PHP
分页
代码
运行出来的
PHP
+
ORACLE
分页
代码,还有页码
PHP
实现的
oracle
分页
函数实例
在数据库应用开发中,
分页
是一种常见的功能,它...文章提供的代码实例和解释有助于加深对
Oracle
分页
实现机制的理解,并可以在实际开发中
使用
。掌握这些技巧对于进行数据库操作和开发Web应用的
PHP
程序员来说十分有用。
ZfcDatagrid-
Oracle
:这个项目是zend db的
分页
扩展,因为用
oracle
选择
分页
失败https
在
Oracle
数据库中,由于其特定的SQL语法和特性,传统的
分页
方法可能无法正常工作,导致开发者在实现
分页
功能时遇到困难。 `ZfcDatagrid`是`Zend Framework`的一个组件,它提供了一个强大的工具来创建和管理数据网格...
基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)
7.SQL Server提供数据仓库功能,这个功能只在
Oracle
和其他更昂贵的DBMS中才有。 SQL Server 2000与以前版本相比较,又具有以下新特性 : 1.支持XML(Extensive Markup Language,扩展标记语言) 2.强大的...
Oracle
分页
程序的实现(
PHP
版)
本文将介绍如何
使用
PHP
编写一个实用的
Oracle
分页
程序,以便在Web应用程序中实现
分页
功能。在上述示例代码中,我们首先获取当前页码,并设置每页记录数为10。最后,根据总记录数计算页码导航,并将其显示在页面底部。...
基础编程
21,893
社区成员
140,347
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章