function format_page($sql,$intsize) { global $objDB; global $curpage; global $pagesize; global $totalcount; global $pagecount; if (intval($curpage)==0) $curpage=1; $pagesize=$intsize; //取得记录总数 $countsql="select count(*) from ($sql)"; $objDB->execQuery($countsql); $totalcount=$objDB->getField(1,1); $objDB->freeResult(); $objDB->execQuery($sql); $ret = $objDB->getAllRows(&$Rows,($curpage-1)*$pagesize,$pagesize); $pagecount = ($totalcount%$pagesizeceil)?($totalcount/$pagesize):ceil($totalcount/$pagesize); $objDB->freeResult(); return $Rows; }//处理数据库记录数组 function format_Rows($Rows,$intRows) { //处理后可以直接使用下标来读取数组内容 $aryRow = $Rows[$intRows]; return array_values($aryRow);
}//打印分页连接 function show_page_link() { global $curpage; global $pagesize; global $totalcount; global $pagecount; global $PHP_SELF; global $QUERY_STRING; if (intval($curpage) ==0) $curpage=1;
用Oracle调用数据库字段,用for 循环!代码如下
<?
$MAXROWS=20;//每页所取的条书
$conn=连接Oracle数据库;
$str="调用数据库字段";
if(isset($from)){
$step=$total-$from;
$step=$step>$MAXROWS?$MAXROWS:$step;
$str="$str limit $from,$step";
$res=mysql_db_query($data,$str,$db);
for ($i=0;$i<$step;$i++){
$row=mysql_fetch_row($res);
?>
再循环里添加一段php 代码 如下:
<?
print "<a href=\"test.php?from=0&total=$total&pages=$pages\">";
print "第一页</a> ";
if ($pages>2&&$from>=$MAXROWS){
print"<a href=\"test.php?from=";
print ($from-$MAXROWS)."&total=$total&pages=$pages\">";
print"上一页</a> ";
}
if($from+$MAXROWS<$total){
print"<a href=\"test.php?from=";
print ($from+$MAXROWS)."&total=$total&pages=$pages\">";
print"下一页</a> ";
}
print"<a href=\"test.php?from=";
print($pages*$MAXROWS-$MAXROWS)."&total=$total&pages=$pages\">末页</a>";
}
else{
$res=mysql_db_query($data,$str,$db);
$total=mysql_num_rows($res);
$step=$total>$MAXROWS?$MAXROWS:$total;
$pages=ceil($total/$MAXROWS);
for ($i=0;$i<$step;$i++){
$row=mysql_fetch_row($res);
echo "<tr>";
echo "<td width=60% align=\"left\" ><font color=000000><a href=\"news_view.php?subj_id=$row[0]\">".$row[2]."</a></font></td>";
echo "<td width=25% align=\"left\">".$row[5]."</td>";
echo "<td width=15% align=\"center\">".$row[4]."</td>";
echo "</tr>";
}
echo "</table>";
//echo "<HR color=#E3E3E3 noshade width=80% size=1>";
if ($pages>1){
print"<a href=\"test.php?from=0&total=$total&pages=$pages\">";
print"首页</a> ";
}
if ($pages>2){
print"<a href=\"test.php?from=$step&total=$total&pages=$pages\">";
print"下一页</a> ";
}
if ($pages>=2){
print"<a href=\"test.php?from=";
print($pages*$MAXROWS-$MAXROWS)."&total=$total&pages=$pages\">末页</a>";
}
}
print "<a href=\"test.php?from=0&total=$total&pages=$pages\">";
print "第一页</a> ";
if ($pages>2&&$from>=$MAXROWS){
print"<a href=\"test.php?from=";
print ($from-$MAXROWS)."&total=$total&pages=$pages\">";
print"上一页</a> ";
}
if($from+$MAXROWS<$total){
print"<a href=\"test.php?from=";
print ($from+$MAXROWS)."&total=$total&pages=$pages\">";
print"下一页</a> ";
}
print"<a href=\"sw_telerint "共 ".$pages." 页 ".$total." 条/ 每页20条";
echo "</font>";
?>
不好意思,我说错了,应该是表格。你能具体一点吧。谢谢!
我是基于Oracle数据库的,你说的是基于MySQL。
OCIFetchStatement($stmt, $results, $skip,$RowCount,OCI_FETCHSTATEMENT_BY_ROW);
$results是返回的结果,$skip是从第几行开始取,$RowCount是取多少行。
比如你每页20条记录,如果是第三页就可以
OCIFetchStatement($stmt, $results, 20*2,20,OCI_FETCHSTATEMENT_BY_ROW);
上面的 ye_fushou 的代码我看了,比较适合我的想法,只是她用的是MySql数据库的函数。所以我现在想知道的是怎样用ORACLE的函数代替MySql。 很谢谢你的指导:),如有机会,改天我请客!
$cnn=ocilogon("用户名","密码","数据库");//连接oracle
$stmt=OCIParse($cnn,"SQL查询语句");
//估计有BUG
为什么不试试ODBC连接Oracle数据库哪?
我一般用ODBC!因为我很懒!
{
global $objDB;
global $curpage;
global $pagesize;
global $totalcount;
global $pagecount;
if (intval($curpage)==0)
$curpage=1;
$pagesize=$intsize;
//取得记录总数
$countsql="select count(*) from ($sql)";
$objDB->execQuery($countsql);
$totalcount=$objDB->getField(1,1);
$objDB->freeResult();
$objDB->execQuery($sql);
$ret = $objDB->getAllRows(&$Rows,($curpage-1)*$pagesize,$pagesize);
$pagecount = ($totalcount%$pagesizeceil)?($totalcount/$pagesize):ceil($totalcount/$pagesize);
$objDB->freeResult();
return $Rows;
}//处理数据库记录数组
function format_Rows($Rows,$intRows)
{
//处理后可以直接使用下标来读取数组内容
$aryRow = $Rows[$intRows];
return array_values($aryRow);
}//打印分页连接
function show_page_link()
{
global $curpage;
global $pagesize;
global $totalcount;
global $pagecount;
global $PHP_SELF;
global $QUERY_STRING;
if (intval($curpage) ==0)
$curpage=1;
$URL=$PHP_SELF;
$QueryString=$QUERY_STRING;
$QueryString= StripSlashes(ereg_replace("curpage=[0-9]*&?","",$QueryString));
?>
<?
if (intval($curpage) > 1 )
{
?><a href="<?=$URL?>?curpage=1&<?=$QueryString?>"><img src="../images/start.gif" width="15" height="15" border="0" align="bottom" title="首页" ></a><a href="<?=$URL?>?curpage=<?=$curpage-1?>&<?=$QueryString?>"><img src="../images/pre.gif" border="0" height="15" width="15" title="上一页" align="bottom"></a><?
}
else
{
?><img src="../images/start.gif" width="15" height="15" border="0" align="bottom" title="首页" ><img src="../images/pre.gif" border="0" height="15" width="15" title="上一页" align="bottom"><?
}
if (intval($curpage)< $pagecount)
{
?>
<a href="<?=$URL?>?curpage=<?=$curpage+1?>&<?=$QueryString?>"><img src="../images/next.gif" width="15" height="15" border="0" align="bottom" title="下一页"></a><a href="<?=$URL?>?curpage=<?=$pagecount?>&<?=$QueryString?>"><img src="../images/end.gif" width="15" height="15" border="0" align="bottom" title="未页"></a>
<?
}
else
{
?>
<img src="../images/next.gif" width="15" height="15" border="0" align="bottom" title="下一页"><img src="../images/end.gif" width="15" height="15" border="0" align="bottom" title="未页">
<? }
echo " 页次:".$curpage."/".$pagecount." 共".$totalcount."条记录";
?>
<input type="hidden" name="curpage" value="<?=$curpage?>">
<?
}//$objDB是oracle操作类的对象,里面的getAllRows的方法如下
//得到全部查询结果
//参数:$Rows 返回查询结果,$Skip 从第几行开始,$RowCont 返回多少行
function getAllRows($Rows,$Skip,$RowCount,$result="")
{
if($result != "") $this->QueryResult = $result;
return @OCIFetchStatement($this->QueryResult,&$Rows,$Skip,$RowCount,OCI_FETCHSTATEMENT_BY_ROW);
}
<form name="form1" method="post" action="">
<input type="hidden" name="act" value="del"> <table width="50%" border="0" cellpadding="1" cellspacing="1" class="table">
<tr class="table0">
<td width="10%"> </td>
<td width="30%" align="center">类别ID</td>
<td width="60%" align="center">用户类别描述</td>
</tr>
<? $sql = "select usertype_id,description from t_usertype";
$pagesize=10;
$aryRow=format_page($sql,$pagesize);
for ($i=0;$i<$pagesize && $i < count($aryRow);$i++)
{
$rows=format_Rows($aryRow,$i);
echo ($i%2 == 1?"<tr class=table1 >":"<tr class=table2 >\n");?>
<td> <input type="checkbox" name="checkbox" value="'<?=$rows[0]?>'"></td>
<td>
<?=$rows[0]?>
</td>
<td>
<?=$rows[1]?>
</td>
</tr>
<?
}
?>
<tr align="left" class="table3">
<td colspan="3"><input type="checkbox" name="checkbox2" value="checkbox" onClick="selectAll(this.form);">
全选
<input name="Submit" type="button" class="button" value="删除" onClick="doSubmitDel(this.form,'<?=$PHP_SELF?>','<?=$strUrl?>');">
<input name="Submit3" type="button" class="button" value="修改" onClick="doSubmitEdit(this.form,'usertype_config.php','<?=$strUrl?>');" >
<input name="Submit2" type="button" class="button" value="增加" onClick="self.location='usertype_config.php?<?=$strUrl?>'" >
<?
show_page_link();
?>
</td>
</tr>
</table>
</form>
多谢大哥的不吝赐教。
我会照着大家提供的帮助去测试。