php分页显示。

lovefan666 2003-10-16 11:18:36
我用php+mysql做了一个数据库查询页面,多重查询,但没有完成查询结果的分页显示,我想在不更改,或少更改原有代码的基础上增加分页显示的功能,请高手赐教分页代码及代码说明,编程思想。谢谢。
...全文
141 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
skystar008 2003-10-20
  • 打赏
  • 举报
回复
php的分页方法其实很多的,要看你如何用了.下面是我的一个搜索的分页代码.
<?php
$msql->query("select count(gid) from tablenames where catid='$catid' or pid='$catid' or ppid='$catid' or pppid='$catid'");


if($msql->next_record()){
$totalnums=$msql->f('count(gid)');
$totalpage=ceil($totalnums/10);
$totalgroup=ceil($totalpage/10);
}
if($page==""){
$page=1;
}
if($group==""){
$group=ceil($page/10);
}else{
$page=($group-1)*10+1;
}
$pagelimit=($page-1)*10;

if($group=="1"){
$gg1="off";
}else{
$gg1="on";
}
if($page=="1"){
$pp1="off";
}else{
$pp1="on";
}
if($page>=$totalpage){
$pp2="off";
}else{
$pp2="on";
}
if($group>=$totalgroup){
$gg2="off";
}else{
$gg2="on";
}
?>
下面就可以输出了.
okdw 2003-10-20
  • 打赏
  • 举报
回复
用limit
navis 2003-10-20
  • 打赏
  • 举报
回复
有谁知道PHP+Oracle的分页代码?
ustb 2003-10-16
  • 打赏
  • 举报
回复
请搜索一下。
xinchangpeng 2003-10-16
  • 打赏
  • 举报
回复
分页显示需要用"select * from liu order by id desc limit $A,6" 这里变量A表示从第A条开始查询“6”表示每次查找六条记录这样的话你先计算出记录的总数然后计算共有几页,然后就很简单了。
flyweb 2003-10-16
  • 打赏
  • 举报
回复
http://www.fengzhilv.com/3bs/topic.asp?ListID=6&Topic_ID=426
lovefan666 2003-10-16
  • 打赏
  • 举报
回复
在线等待.
lovefan666 2003-10-16
  • 打赏
  • 举报
回复
最后一行<html>标签说好似参数错误!为什么 ?????
lovefan666 2003-10-16
  • 打赏
  • 举报
回复
最后一行为什么能出错?真不明白
lovefan666 2003-10-16
  • 打赏
  • 举报
回复
Parse error: parse error in /z1/ffffff/public_html/han1/search2.php on line 86
填上代码,为什么老出现以上错误,最后一行出错.但最后一行就<html>一句呀,真不明白.
为什么?急.
navis 2003-10-16
  • 打赏
  • 举报
回复
我昨天下午刚写好的,试一试,数据库是oracle8i

<?php
$sql="select * from m_user";
$stmt = OCIParse($conn,$sql);
OCIExecute($stmt);

//分页显示通用代码

$page=$_REQUEST["page"];
$limit = 10; //每一页的记录数
$count=1;
while (OCIFetch($stmt)){
$gb[$count]['a1']=OCIResult($stmt,1);
$gb[$count]['a2']=OCIResult($stmt,2);
$gb[$count]['a3']=OCIResult($stmt,3);
$gb[$count]['a4']=OCIResult($stmt,4);
$gb[$count]['a5']=OCIResult($stmt,5);
$count++;
}
OCIFreeStatement($stmt);
OCILogoff($conn);

$count--; //总的记录数
if ($count>=1){ //有记录的话显示数据

$i=0;
if (($count/$limit-$count%$limit)>0) $i=1;
$pages=(int)($count/$limit)+$i;//取得总页数
if (empty($page) || $page <= 0 || $page>$pages) $page=1; //当前页
$begin =($page-1)*$limit+1; //开始的记录数
$end = $begin+$limit-1; //结束的记录数
if ($end>$count) $end=$count;
echo "<font color=red>共有<b>$count</b>位操作员,现在显示第 <b>$begin</b> -- <b>$end</b> 位</font><br><br>\n";
for ($i=$begin;$i<=$end;$i++){
echo "<tr>";
echo "<td> <input type='checkbox' name='uname' value=''></td>";
echo "<td>".$gb[$i]['a1']."</td>";
echo "<td>".$gb[$i]['a2']."</td>";
echo "<td>".$gb[$i]['a3']."</td>";
echo "<td>".$gb[$i]['a4']."</td>";
echo "<td>".$gb[$i]['a5']."</td>";
echo "<td> </td>";
echo "</tr>";
}
echo "</table>";
}
else
{echo "<font color=red>目前没有数据</font></table>";}
//
?>
下面是"下一页上一页"的链接
<?php if ($pages>1){
echo "<a href='sa_manage.php?page=".($page-1)."'>上一页</a>,<a href='sa_manage.php?page=".($page+1)."'>下一页</a>,第<b>$page</b>/<b>$pages</b>页";
} ?>

shg918 2003-10-16
  • 打赏
  • 举报
回复
mark
blueoxygen 2003-10-16
  • 打赏
  • 举报
回复
分页类

/**********
| +---------------------------------------------------
| CLASS NAME: PageBar
| +---------------------------------------------------
| Author: Arvan [E-mail:Arvan@5n9.com QQ:8817776]
| Create date: 2003-7-17
| Note:
| Do for pagination
| +---------------------------------------------------
| Warning: no...
| +---------------------------------------------------
**********/

class PageBar
{
var $total;
var $onepage;
var $num;
var $pagecount;
var $total_page;
var $offset;
var $linkhead;

function PageBar($total, $onepage, $form_vars='')
{
$pagecount = $_GET['pagecount'];
$this->total = $total;
$this->onepage = $onepage;
$this->total_page = ceil($total/$onepage);

if (empty($pagecount))
{
$this->pagecount = 1;
$this->offset = 0;
}
else
{
$this->pagecount = $pagecount;
$this->offset = ($pagecount-1)*$onepage;
}

if (!empty($form_vars))
{

$vars = explode("|", $form_vars);
$chk = $vars[0];
$chk_value = $_POST["$chk"];
if (empty($chk_value))
{
$formlink = "";
}
else
{
for ($i=0; $i<sizeof($vars); $i++)
{
$var = $vars[$i];
$value = $_POST["$var"];
$addchar = $var."=".$value;

$formlink = $formlink.$addchar."&";
}
}
}
else
{
$formlink = "";
}

$linkarr = explode("pagecount=", $_SERVER['QUERY_STRING']);
$linkft = $linkarr[0];

if (empty($linkft))
{
$this->linkhead = $_SERVER['PHP_SELF']."?".$formlink;
}
else
{
$linkft = (substr($linkft, -1)=="&")?$linkft:$linkft."&";
$this->linkhead = $_SERVER['PHP_SELF']."?".$linkft.$formlink;
}

}
#End function PageBar();

function offset()
{
return $this->offset;
}
#End function offset();

function pre_page($char='')
{
$linkhead = $this->linkhead;
$pagecount = $this->pagecount;
if (empty($char))
{
$char = "[<]";
}

if ($pagecount>1)
{
$pre_page = $pagecount - 1;
return "<a href=\"$linkhead"."pagecount=$pre_page\">$char</a>";
}
else
{
return '';
}

}
#End function pre_page();

function next_page($char='')
{
$linkhead = $this->linkhead;
$total_page = $this->total_page;
$pagecount = $this->pagecount;
if (empty($char))
{
$char = "[>]";
}
if ($pagecount<$total_page)
{
$next_page = $pagecount + 1;
return "<a href=\"$linkhead"."pagecount=$next_page\">$char</a>";
}
else
{
return '';
}
}
#End function next_page();

function num_bar($num='', $color='', $left='', $right='')
{
$num = (empty($num))?10:$num;
$this->num = $num;
$mid = floor($num/2);
$last = $num - 1;
$pagecount = $this->pagecount;
$totalpage = $this->total_page;
$linkhead = $this->linkhead;
$left = (empty($left))?"[":$left;
$right = (empty($right))?"]":$right;
$color = (empty($color))?"#ff0000":$color;
$minpage = (($pagecount-$mid)<1)?1:($pagecount-$mid);
$maxpage = $minpage + $last;
if ($maxpage>$totalpage)
{
$maxpage = $totalpage;
$minpage = $maxpage - $last;
$minpage = ($minpage<1)?1:$minpage;
}

for ($i=$minpage; $i<=$maxpage; $i++)
{
$char = $left.$i.$right;
if ($i==$pagecount)
{
$char = "<font color='$color'>$char</font>";
}

$linkchar = "<a href='$linkhead"."pagecount=$i'>".$char."</a>";
$linkbar = $linkbar.$linkchar;
}

return $linkbar;
}
#End function num_bar();

function pre_group($char='')
{
$pagecount = $this->pagecount;
$linkhead = $this->linkhead;
$num = $this->num;
$mid = floor($num/2);
$minpage = (($pagecount-$mid)<1)?1:($pagecount-$mid);
$char = (empty($char))?"[<<]":$char;
$pgpagecount = ($minpage>$num)?$minpage-$mid:1;
return "<a href='$linkhead"."pagecount=$pgpagecount'>".$char."</a>";
}
#End function pre_group();

function next_group($char='')
{
$pagecount = $this->pagecount;
$linkhead = $this->linkhead;
$totalpage = $this->total_page;
$num = $this->num;
$mid = floor($num/2);
$last = $num;
$minpage = (($pagecount-$mid)<1)?1:($pagecount-$mid);
$maxpage = $minpage + $last;
if ($maxpage>$totalpage)
{
$maxpage = $totalpage;
$minpage = $maxpage - $last;
$minpage = ($minpage<1)?1:$minpage;
}

$char = (empty($char))?"[>>]":$char;
$ngpagecount = ($totalpage>$maxpage+$last)?$maxpage + $mid:$totalpage;

return "<a href='$linkhead"."pagecount=$ngpagecount'>".$char."</a>";
}
#End function next_group();

function whole_num_bar($num='', $color='')
{
$num_bar = $this->num_bar($num, $color);
$pre_group = $this->pre_group();
$pre_page = $this->pre_page();
$next_page = $this->next_page();
$next_group = $this->next_group();

return $pre_group.$pre_page.$num_bar.$next_page.$next_group;
}
#End function whole_bar();

function Jump_form()
{
$linkhead = $this->linkhead;
$total = $this->total_page;
$form = <<<EOT
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<script language="javascript">
function jump(linkhead, total, page)
{
var pagecount = (page.value>total)?total:page.value;
var pagecount = (pagecount<1)?1:pagecount;
location.href = linkhead + "pagecount=" + pagecount;

}
</script>
<form name="pagebarjumpform" method="post" onSubmit="return jump('$linkhead', $total, this.form.page)"><tr>
<td>
<input name="page" type="text" size="1">
<input type="button" name="Submit" value="GO" onClick="return jump('$linkhead', $total, this.form.page)">
</td>
</tr></form></table>
EOT;

return $form;
}
#End function Jump_form();

}
#End class PageBar;


/*****
//example

$total = 1000;
$onepage = 20;

$pb = new PageBar($total, $onepage);
$offset = $pb->offset();
$pagebar = $pb->whole_num_bar();
$jumpform = $pb->Jump_form();
echo $offset."<br>".$pagebar."<br>".$jumpform;

return:
0
[<<] [1][2][3][4][5][6][7][8][9][10][>][>>]

*****/
okdw 2003-10-16
  • 打赏
  • 举报
回复
少改代码那些个类把

21,882

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧