社区
基础编程
帖子详情
★ 请问怎么使用PHP在Oracle里做分页!?
phpphp
2004-11-26 04:29:36
要最容易理解 和最容易使的(我是个初学者)
最好不使类:)
谢谢!!
...全文
237
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
程序员来说十分有用。
Oracle
分页
程序的实现(
PHP
版)
本文将介绍如何
使用
PHP
编写一个实用的
Oracle
分页
程序,以便在Web应用程序中实现
分页
功能。在上述示例代码中,我们首先获取当前页码,并设置每页记录数为10。最后,根据总记录数计算页码导航,并将其显示在页面底部。...
php
oracle
分页
,
Oracle
分页
查询语句的写法
Oracle
分页
查询语句的写法
Oracle
分页
查询语句使我们最常用的语句之一,下面就为您介绍的
Oracle
分页
查询语句的用法,
Oracle
分页
查询语句基本上可以按本文给出的格式来进行套用。
Oracle
分页
查询格式:以下是代码片段:...
PHP
-
oracle
排序后
分页
今天根据项目需求用
php
连
oracle
做
一个消费记录展示,在
分页
的时候踩了不少坑1、
oracle
不同于musql,它没有limit2、
oracle
的日期直接查出来和我们常见的YY-mm-dd HH:ii:ss有区别,需要to_char(l.opt_time,'YYYY-MM-...
基础编程
21,890
社区成员
140,347
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章