请都一下数据分页问题

Ricky_Bobo 2009-08-12 10:47:32
<?php
function writeNavigation($p_rs,$p_pageSize,$p_pageIndex,$p_totleRs,$p_strURL){
$pageCount=(int)ceil($p_totleRS/$p_pageSize);
$recordHead=1;
if($p_pageIndex>1){
$recordHead=$p_pageSize*($p_pageIndex-1)+1;
}
if($p_pageIndex>=$pageCount){
$recordLast=$p_totleRs;
}else{
$recordLast=$p_pageSize*$p_pageIndex;
}

$result="";
$result=$result."<table width=\"600\"><tr><td colspan=\"3\">";
$result=$result."第".$recordHead."-".$recordLast."条,共".$p_totleRs."条,每页显示".$p_pageSize."条</td></tr>";

$prevPage=$p_pageIndex-1;
$nextPage=$p_pageIndex+1;

if(strpos($p_strURL,"?")==false){
$p_strURL=$p_strURL."?";
}else{
$p_strURL=$p_strURL."&";
}

$firstPage="<a href=\"".$p_strURL."page=1\">[首页]</a> ";
$lastPage="<a href=\"".$p_strURL."page=".$pageCount."\">[尾页]</a>";
if($p_pageIndex>1){
$prevPage="<a href=\"".$p_strURL."page=".$prevPage."\">[上页]</a> ";
}
if($p_pageIndex<$pageCount){
$prevPage="<a href=\"".$p_strURL."page=".$nextPage."\">[下页]</a> ";
}
if($p_pageIndex==$pageCount){
$nextPage="[下页] ";
$lastPage="[尾页]";
}
if($p_pageIndex<=1){
$prevPage="[上页] ";
$firstPage="[首页] ";
}

$result=$result."<tr align=\"right\"><form name=\"form\" method=\"post\" action=\"".$p_strURL."\"><td align=\"left\">";
$result=$result."共".$pageCount."页 "."目前第".$p_pageIndex."页</td><td>";
$result=$result." 到第<input type=\"text\" name=\"page\" size=\"3\" style=\"height:16px; margin-bottom:2px;\" /> 页 <input type=\"submit\" value=\"GO\" style=\"height:18px; margin-bottom1px;\" />";
$result=$result."</td><td>".$firstPage.$prevPage.$nextPage.$lastPage."</td></form></tr></table>";

return $result;
}

function writePagedRS($p_rs,$p_pageSize,$p_pageIndex){
$result="";
$result=$result."<table><tr bgcolor=\"#637E94\">";
$row=$p_rs->fetch(PDO::FETCH_ASSOC);
if(empty($row)){
break;
}
$key=array_keys($row);
$columnSize=count($key);
for($j=0;$j<$columnSize;$j++){
$result=$result."<th width=\"150\">".$key[$j]."</th>";
}
$result=$result."</tr>";


$id=0;
/*$row=$p_rs->fetch(PDO::FETCH_NUM,PDO::FETCH_ORI_REL,($p_pageIndex-1)*$p_pageSize-1);*/
while($id<$p_pageSize){
/*$row=$p_rs->fetch(PDO::FETCH_NUM,PDO::FETCH_ORI_REL,1);*/
if(empty($row)){
break;
}
$id++;
if(($id%2)==0){
$result=$result."<tr bgcolor=\"#E3EAEF\">";
}else{
$result=$result."<tr bgcolor=\"#ffffff\">";
}
for($j=0;$j<$columnSize;$j++){
$result=$result."<td>".$row[$key[$j]]."</td>";
}
$result=$result."</tr>";

$row=$p_rs->fetch(PDO::FETCH_ASSOC);
}
$result=$result."</table>";

return $result;
}
?>
<?php
$rs_start=0;
$rs_end=0;
$pageSize=3;
$strURL="page.php";
try{
$dbh=new PDO("mysql:host=localhost;port=3306;dbname=go","root","123");
$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$dbh->exec("SET CHARACTER SET gbk");
$sth=$dbh->prepare("select c_id,classification,f_id from classification limit ?,?");
$sth->bindParam(1,$rs_start,PDO::PARAM_INT);
$sth->bindParam(2,$rs_end,PDO::PARAM_INT);
}catch(PDOException $err){
echo("出错,请重试或者联系管理员1!");
try{
$dbh=NULL;
}catch(PDOException $err){
echo("出错,请重试或者联系管理员2!");
}
die();
}
$flag=false;
try{
$pageIndex=1;
try{
if($pageIndex=(int)$_REQUEST["page"]<=0){
$pageIndex=1;
}
}catch(Exception $err){
echo "pageIndex值错了~";
$pageIndex=1;
}

$rs_start=($pageIndex-1)*$pageSize;
$rs_end=$pageSize;

$flag=$sth->execute();
if(!$flag){
echo("没有记录!");
}else{
$totleRS=7;
$pageCount=(int)ceil($totleRS/$pageSize);
if($pageIndex==1||$pageIndex<1){
$pageIndex=1;
}else if($pageIndex>$pageCount){
$pageIndex=$pageCount;
}
echo(writePagedRS($sth,$pageSize,$pageIndex));
echo(writeNavigation($sth,$pageSize,$pageIndex,$totleRS,$strURL));
}
}catch(exception $err){
//echo("出错,请重试或者联系管理员3!");
echo("测试".$err->getMessage());
}
?>
<?php
try{
$dbh=NULL;
}catch(PDOException $err){
echo("出错,请重试或者联系管理员4!");
}
?>

不知道为什么,它只显示第一页,不知道错在哪里了,
...全文
111 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
cheng1984cheng 2010-10-25
  • 打赏
  • 举报
回复
通过楼上多位童鞋的回复,LZ发现没有。这样的代码放论坛里还没什么,如果在工作中,其他同事要用你的代码时,不知道您的母亲会被多少人问候。

当其他人需要使用您的代码时 麻烦每一个函数和每一个属性都注释一下,
当其他人需要认真分析您的代码时,麻烦争取做到每一行都注释一下。
just_sendd 2010-10-23
  • 打赏
  • 举报
回复
这里好像有解决方法阿http://www.jstdoit.com/2010/09/93/
dzxccsu 2009-08-12
  • 打赏
  • 举报
回复
有时间帮你看看!
Abin-2008 2009-08-12
  • 打赏
  • 举报
回复
好像我的也有点.........

呵呵呵呵呵........
Abin-2008 2009-08-12
  • 打赏
  • 举报
回复
怎么你整个分页 整的像古代女的裹脚布一样?

附上小弟分页源码:
$page_number =10; //每頁允許顯示的最大記錄數
$page = intval($_GET['page']); //偏移量
if($link) //数据库连接变量
{
$sql = "SELECT Count(*) FROM messages";
$result = mysql_query($sql);
$row = mysql_fetch_row($result);
$number = $row[0];
//規範page
if($number>0){
if($page<0){
$page = 0;
}
elseif($page > $number){
$page = $number;
}
$page_forward = $page-$page_number;
$page_back = $page+$page_number;
$pages = ceil($number/$page_number);
$page_nonce = ceil($page/$page_number)+1;
$pag = ($pages-1)*$page_number;

$sql="select * from messages order by createTime desc";
$sql=$sql." limit ".$page.",$page_number";
$result=selectAll($sql,$link);
}
}


<!--分页开始-->
<div class="digg">
<?
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////分页//////////////////////////////////////////////////////////////////////////////////////////
if ($pages>1)
{
echo"页次".$page_nonce."/".$pages."  ";
echo ($page_nonce!=1) ? "<A href='$PHP_SELF?page=0'>首页 </A>"."<A href='$PHP_SELF?page=$page_forward'><b>«</b></A>" : "<b>首页 «</b>";
echo " ";
if($page_nonce<=3)
{ $y=1;$z=5;}
elseif($page_nonce>=$pages-2)
{$y=$pages-4;$z=$pages;}
else
{$y=$page_nonce-2; $z=$page_nonce+2;}
for ($x=$y;(($x<=$z)&&($x<=$pages));$x++)
{
if (($x!=$page_nonce)&&($x>0))
{
$pagex=($x-1)*$page_number;
echo "<A href='$PHP_SELF?page=$pagex'>$x</A> ";
}
elseif($x>0)
echo "<span class=\"current\">".$x."</span> ";
}
echo ($page_nonce<$pages)?"<A href='$PHP_SELF?page=$page_back'><b>»</b></A>"."<A href='$PHP_SELF?page=$pag'> 末页</A>":"<b>» 末页</b>";
}
?>
</div>
<!--分页结束-->
TR@SOE 2009-08-12
  • 打赏
  • 举报
回复
一上来就看这么多的代码……
tfxg 2009-08-12
  • 打赏
  • 举报
回复
看不完這麼多
fenyao 2009-08-12
  • 打赏
  • 举报
回复
好长啊,帮顶
ERPshanghai 2009-08-12
  • 打赏
  • 举报
回复
太长了,懒的看
zhuhuquan29 2009-08-12
  • 打赏
  • 举报
回复
两位的分页可真长这样执行效率会很慢的。。。。

21,891

社区成员

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

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