<?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>&nbsp;";
$lastPage="<a href=\"".$p_strURL."page=".$pageCount."\">[尾页]</a>";
if($p_pageIndex>1){
$prevPage="<a href=\"".$p_strURL."page=".$prevPage."\">[上页]</a>&nbsp;";
}
if($p_pageIndex<$pageCount){
$prevPage="<a href=\"".$p_strURL."page=".$nextPage."\">[下页]</a>&nbsp;";
}
if($p_pageIndex==$pageCount){
$nextPage="[下页]&nbsp;";
$lastPage="[尾页]";
}
if($p_pageIndex<=1){
$prevPage="[上页]&nbsp;";
$firstPage="[首页]&nbsp;";
}

$result=$result."<tr align=\"right\"><form name=\"form\" method=\"post\" action=\"".$p_strURL."\"><td align=\"left\">";
$result=$result."共".$pageCount."页&nbsp;"."目前第".$p_pageIndex."页</td><td>";
$result=$result."&nbsp;到第<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!");
}
?>不知道为什么,它只显示第一页,不知道错在哪里了,

解决方案 »

  1.   

    怎么你整个分页 整的像古代女的裹脚布一样?附上小弟分页源码:
    $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."&nbsp;&nbsp;";
        echo ($page_nonce!=1) ? "<A href='$PHP_SELF?page=0'>首页&nbsp;</A>"."<A href='$PHP_SELF?page=$page_forward'><b>&laquo;</b></A>" : "<b>首页&nbsp;&laquo;</b>";
        echo "&nbsp;";
        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>&nbsp;";
          }
          elseif($x>0)
            echo "<span class=\"current\">".$x."</span>&nbsp;";
        }
        echo  ($page_nonce<$pages)?"<A href='$PHP_SELF?page=$page_back'><b>&raquo;</b></A>"."<A href='$PHP_SELF?page=$pag'>&nbsp;末页</A>":"<b>&raquo;&nbsp;末页</b>";
    }
     ?>
    </div>
    <!--分页结束-->
      

  2.   

    这里好像有解决方法阿http://www.jstdoit.com/2010/09/93/