我的,贴个给你,有些长,自己看看,然后改吧~<table width="90%"  border="0" cellpadding="1" cellspacing="1" bgcolor="#84B4DB" align="center">
  <tr align="center">
    <td width="5%" height="20" nowrap><span class="style1">次序</span></td>
    <td width="18%"><span class="style1">产品图片</span></td>
    <td width="24%"><span class="style1">产品名称</span></td>
    <td width="42%"><span class="style1">产品简介</span></td>
    <td width="11%"><span class="style1">操作</span></td>
  </tr>
 <?

//查询结果
if ($_GET['action']=="search" or $_POST['action']=="search")
  {
  $keyword=$_POST['keyword'];
  $pclass=$_POST['pclass'];
  $where="where 1=1 ";
  if ($pclass!=0) $where.=" and pClass1='$pclass'";
  if ($keyword!="") $where.=" and pName like '%$keyword%'";
  if ($yu!="nothing") $where.=" and pLanguage='$yu'";
      $query = "select * from tbl_product ".$where." order by is_order"; 
  }else{
  $pclass=$_GET['pclass'];
    if ($pclass!="")
  {
$query="select * from tbl_product where pClass1='$pclass' order by is_order";
  }else{
            $query="select * from tbl_product order by is_order";
      }
      }
$result=mysql_query($query) or die(mysql_error());
    //--取回数据
$count=0;
while($row=mysql_fetch_array($result)){
   $rs[$count]['id']=$row['id'];
   $rs[$count]['pName']=$row['pName'];
   $rs[$count]['pImgSmall']=$row['pImgSmall'];
   $rs[$count]['pSpec']=$row['pSpec'];
   $rs[$count]['pClass1']=$row['pClass1'];
   $rs[$count]['is_New']=$row['is_New'];
   $rs[$count]['is_order']=$row['is_order'];
   $rs[$count]['pPrice']=$row['pPrice'];
   $rs[$count]['pLanguage']=$row['pLanguage'];
   $count++;
  }
   //--获取$page值
   $page=$_GET['page'];
   if (@$page=="")
 {
 $page=$_POST['page'];
 if ($page=="")
   $page = 0;
 }
  //--计算页数
  $count = count($rs);
  $msgPerPage=10; //每页显示数
  $start = @$page*$msgPerPage;
  $end = $start+$msgPerPage;
  if ($end>$count)
  $end = $count;
  $totalpage = ceil($count/$msgPerPage);
  
     //输出记录 
 for ($i=$start;$i<$end;$i++)
   {
   //得到产品类别
   $class1=$rs[$i]['pClass1'];
   $res=mysql_query("select * from tbl_p_class where id='$class1'");
   $res1=mysql_fetch_array($res); 
   $cn_classname=$res1['cn_name']; 
   $en_classname=$res1['en_name']; 
  ?>
  <tr bgcolor="#FFFFFF">
    <td height="53" align="center"><?=$rs[$i]['is_order']?></td>
    <td align="center">
<?
if ($rs[$i]['pImgSmall']!="")
{
echo "<img src=upfile/".$rs[$i]['pImgSmall'].">";
}else{
    echo "暂无图片";
    }
?>
</td>
    <td bgcolor="#FFFFFF">
<?
echo " ".$rs[$i]['pName'];
if ($rs[$i]['is_New']=="1")
{
echo "<font color=red>(新)</font>";
}
echo "<p> 属于类别:".$cn_classname."&nbsp;".$en_classname;
if ($rs[$i]['pLanguage']=="1") $language="中文";
    if ($rs[$i]['pLanguage']=="2") $language="English";
if ($rs[$i]['pLanguage']=="0") $language="中文/English";
echo "<br> 发布版本:".$language;
?>
    <br>    
    </td>
    <td>
    <?
echo nl2br($rs[$i]['pSpec']);
echo "<br><br><font color=red>会员价格:";
if ($rs[$i]['pPrice']!="")
  { 
  echo $rs[$i]['pPrice'];
  }else{
  echo "暂无会员价格信息……";
  }
echo "</font>";
?>
    </td>
    <td align="center" nowrap><a href="modify_product.php?pid=<?=$rs[$i]['id']?>">修改</a> | 
<a href="javascript:del_member('<?=$rs[$i]['id']?>');">删除</a></td>
  </tr>
    <?
  } 
  if ($count==0)
  {
       echo "<tr><td bgcolor=#FFFFFF colspan=5 align=center height=60>暂无记录……</td></tr>";
  }
 ?>
</table>
<table width="80%"  border="0" cellpadding="1" align="center">
  <tr>
    <td align="right">
<?   
echo "&nbsp共有".$count."条";
echo " 页码:<font color=red>".($page+1)."</font>/".$totalpage."&nbsp;";
//开始制作导航条----------------------------------------------
if ($page == "0")
  {
   echo "<font color=#666666>首页  |  上一页</font>";
   }else {
   echo "<a href=javascript:viewPage(1);>首页</a>  |  <a href=javascript:viewPage(".$page.")> 上一页 </a>";
  }
if ($page == $totalpage-1)
 {
 echo "<font color=#666666>|  下一页  |  尾页  ";
  }else{
  echo "|  <a href=javascript:viewPage(".($page+2).")>下一页</a>  |  <a href=javascript:viewPage(".$totalpage.")>尾页</a>";
}
?>
转到第 
<input type='text' name='goto_page1' style='border: 1px solid rgb(0,0,0)' size=4 maxlength=4>
页 
<input style='height:20;WIDTH: 42px;' class='button' hidefocus type='button' value='跳转' name='cmd_goto' onClick='javascript:viewPage(document.all.goto_page1.value);'>
  </td>
  </tr>
</table>
<!---------开始嵌入代码(为跳转导航)--------->
<script language=javascript>
function viewPage(ipage){
  if (ipage<=0)  ipage=1;
  document.frm_page.page.value=ipage-1;
  document.frm_page.submit();        
}
</script>
<form action="<?echo $PHP_SELF;?>" method=post name="frm_page">
<input type="hidden" name="page" >
<input type="hidden" name="keyword" value="<?=$keyword?>">
<input type="hidden" name="pclass" value="<?=$pclass?>">
<input type="hidden" name="yu" value="<?=$yu?>">
<input type="hidden" name="action" value="search">
</form>

解决方案 »

  1.   

    /*--实现分页的通用存储过程 显示指定表、视图、查询结果的第X页
    对于表中主键或标识列的情况,直接从原表取数查询,其它情况使用临时表的方法
    如果视图或查询结果中有主键,不推荐此方法
    如果使用查询语句,而且查询语句使用了order by,则查询语句必须包含top 语句
     --感谢csdn.net邹建  --*//*--调用示例
    exec p_show '地区资料' exec p_show 'select top 100 percent * from 地区资料 order by 地区名称',5,3,'地区编号,地区名称,助记码'
    --*/
    CREATE Proc p_show
    @QueryStr nvarchar(4000), --表名、视图名、查询语句
    @PageSize int=20, --每页的大小(行数)
    @PageCurrent int=1, --要显示的页
    @FdShow nvarchar (4000)='', --要显示的字段列表,如果查询结果不需要标识字段,需要指定此值,且不包含标识字段
    @FdOrder nvarchar (1000)='' --排序字段列表
    as
    set nocount on
    declare @FdName nvarchar(250) --表中的主键或表、临时表中的标识列名
    ,@Id1 varchar(20),@Id2 varchar(20) --开始和结束的记录号
    ,@Obj_ID int --对象ID
    --表中有复合主键的处理
    declare @strfd nvarchar(2000) --复合主键列表
    ,@strjoin nvarchar(4000) --连接字段
    ,@strwhere nvarchar(2000) --查询条件
    select @Obj_ID=object_id(@QueryStr)
    ,@FdShow=case isnull(@FdShow,'') when '' then ' *' else ' '+@FdShow end
    ,@FdOrder=case isnull(@FdOrder,'') when '' then '' else ' order by '+@FdOrder end
    ,@QueryStr=case when @Obj_ID is not null then ' '+@QueryStr else ' ('+@QueryStr+') a' end--如果显示第一页,可以直接用top来完成
    if @PageCurrent=1
    begin
    select @Id1=cast(@PageSize as varchar(20))
    exec('select top '+@Id1+@FdShow+' from '+@QueryStr+@FdOrder)
    return
    end--如果是表,则检查表中是否有标识更或主键
    if @Obj_ID is not null and objectproperty(@Obj_ID,'IsTable')=1
    begin
    select @Id1=cast(@PageSize as varchar(20))
    ,@Id2=cast((@PageCurrent-1)*@PageSize as varchar(20)) select @FdName=name from syscolumns where id=@Obj_ID and status=0x80
    if @@rowcount=0 --如果表中无标识列,则检查表中是否有主键
    begin
    if not exists(select 1 from sysobjects where parent_obj=@Obj_ID and xtype='PK')
    goto lbusetemp --如果表中无主键,则用临时表处理 select @FdName=name from syscolumns where id=@Obj_ID and colid in(
    select colid from sysindexkeys where @Obj_ID=id and indid in(
    select indid from sysindexes where @Obj_ID=id and name in(
    select name from sysobjects where xtype='PK' and parent_obj=@Obj_ID
    )))
    if @@rowcount>1 --检查表中的主键是否为复合主键
    begin
    select @strfd='',@strjoin='',@strwhere=''
    select @strfd=@strfd+',['+name+']'
    ,@strjoin=@strjoin+' and a.['+name+']=b.['+name+']'
    ,@strwhere=@strwhere+' and b.['+name+'] is null'
    from syscolumns where id=@Obj_ID and colid in(
    select colid from sysindexkeys where @Obj_ID=id and indid in(
    select indid from sysindexes where @Obj_ID=id and name in(
    select name from sysobjects where xtype='PK' and parent_obj=@Obj_ID
    )))
    select @strfd=substring(@strfd,2,2000)
    ,@strjoin=substring(@strjoin,5,4000)
    ,@strwhere=substring(@strwhere,5,4000)
    goto lbusepk
    end
    end
    end
    else
    goto lbusetemp/*--使用标识列或主键为单一字段的处理方法--*/
    lbuseidentity:
    exec('select top '+@Id1+@FdShow+' from '+@QueryStr
    +' where '+@FdName+' not in(select top '
    +@Id2+' '+@FdName+' from '+@QueryStr+@FdOrder
    +')'+@FdOrder
    )
    return/*--表中有复合主键的处理方法--*/
    lbusepk:
    exec('select '+@FdShow+' from(select top '+@Id1+' a.* from
    (select top 100 percent * from '+@QueryStr+@FdOrder+') a
    left join (select top '+@Id2+' '+@strfd+' 
    from '+@QueryStr+@FdOrder+') b on '+@strjoin+'
    where '+@strwhere+') a'
    )
    return/*--用临时表处理的方法--*/
    lbusetemp:
    select @FdName='[ID_'+cast(newid() as varchar(40))+']'
    ,@Id1=cast(@PageSize*(@PageCurrent-1) as varchar(20))
    ,@Id2=cast(@PageSize*@PageCurrent-1 as varchar(20))exec('select '+@FdName+'=identity(int,0,1),'+@FdShow+'
    into #tb from'+@QueryStr+@FdOrder+'
    select '+@FdShow+' from #tb where '+@FdName+' between '
    +@Id1+' and '+@Id2
    )
    GO
      

  2.   

    <?php
    /**
    * Mysql資料庫的分頁
    *
    * @author      Avenger <[email protected]>
    * @version    1.0
    * @lastupdate  2003-04-08 11:11:33
    *
    *
    * 使用實例:
    * $p = new show_page;      //建立新對像
    * $p->file="ttt.php";      //設置文件名,默認為當前頁
    * $p->pvar="pagecount";   //設置頁面傳遞的參數,默認為p
    * $p->setvar(array("a" => '1', "b" => '2'));   //設置要傳遞的參數,要注意的是此函數必須要在 set 前使用,否則變量傳不過去
    * $p->set(20,2000,1);      //設置相關參數,共三個,分別為'頁面大小'、'總記錄數'、'當前頁(如果為空則自動讀取GET變量)'
    * $p->output(0);         //輸出,為0時直接輸出,否則返回一個字符串
    * echo $p->limit();      //輸出Limit子句。在sql語句中用法為 "SELECT * FROM TABLE LIMIT {$p->limit()}";
    *
    */
    class show_page {    /**
        * 頁面輸出結果
        *
        * @var string
        */
       var $output;    /**
        * 使用該類的文件,默認為 PHP_SELF
        *
        * @var string
        */
       var $file;    /**
        * 頁數傳遞變量,默認為 'p'
        *
        * @var string
        */
       var $pvar = "p";    /**
        * 頁面大小
        *
        * @var integer
        */
       var $psize;    /**
        * 當前頁面
        *
        * @var ingeger
        */
       var $curr;    /**
        * 要傳遞的變量數組
        *
        * @var array
        */
       var $varstr;    /**
        * 總頁數
        *
        * @var integer
        */
        var $tpage;    /**
        * 分頁設置
        *
        * @access public
        * @param int $pagesize 頁面大小
        * @param int $total    總記錄數
        * @param int $current  當前頁數,默認會自動讀取
        * @return void
        */
        function set($pagesize=20,$total,$current=false) {
          global $HTTP_SERVER_VARS,$HTTP_GET_VARS;      $this->tpage = ceil($total/$pagesize);
          if (!$current) {$current = $HTTP_GET_VARS[$this->pvar];}
          if ($current>$this->tpage) {$current = $this->tpage;}
          if ($current<1) {$current = 1;}      $this->curr  = $current;
          $this->psize = $pagesize;      if (!$this->file) {$this->file = $HTTP_SERVER_VARS['PHP_SELF'];}      if ($this->tpage > 1) {
                
             if ($current>10) {
                $this->output.='<a href='.$this->file.'?'.$this->pvar.'='.($current-10).($this->varstr).' title="前十頁">&lt;&lt;&lt;</a>&nbsp;';
             }
                if ($current>1) {
                $this->output.='<a href='.$this->file.'?'.$this->pvar.'='.($current-1).($this->varstr).' title="前一頁">&lt;&lt;</a>&nbsp;';
             }            $start   = floor($current/10)*10;
                $end   = $start+9;            if ($start<1)         {$start=1;}
                if ($end>$this->tpage)   {$end=$this->tpage;}            for ($i=$start; $i<=$end; $i++) {
                    if ($current==$i) {
                        $this->output.='<font color="red">'.$i.'</font>&nbsp;';    //輸出當前頁數
                    } else {
                        $this->output.='<a href="'.$this->file.'?'.$this->pvar.'='.$i.$this->varstr.'">['.$i.']</a>&nbsp;';    //輸出頁數
                    }
                }            if ($current<$this->tpage) {
                $this->output.='<a href='.$this->file.'?'.$this->pvar.'='.($current+1).($this->varstr).' title="下一頁">&gt;&gt;</a>&nbsp;';
             }
                if ($this->tpage>10 && ($this->tpage-$current)>=10 ) {
                $this->output.='<a href='.$this->file.'?'.$this->pvar.'='.($current+10).($this->varstr).' title="下十頁">&gt;&gt;&gt;</a>';
             }
          }
       }    /**
        * 要傳遞的變量設置
        *
        * @access public
        * @param array $data  要傳遞的變量,用數組來表示,參見上面的例子
        * @return void
        */   
       function setvar($data) {
          foreach ($data as $k=>$v) {
             $this->varstr.='&amp;'.$k.'='.urlencode($v);
          }
       }    /**
        * 分頁結果輸出
        *
        * @access public
        * @param bool $return 為真時返回一個字符串,否則直接輸出,默認直接輸出
        * @return string
        */
       function output($return = false) {
          if ($return) {
             return $this->output;
          } else {
             echo $this->output;
          }
       }    /**
        * 生成Limit語句
        *
        * @access public
        * @return string
        */
        function limit() {
          return (($this->curr-1)*$this->psize).','.$this->psize;
       }} //End Class
    ?>
      

  3.   

    这个价值超过200分
    巨快,分页演示,通用表维护
    http://www.adr.gov.cn/download/panyuguang/adrnew/dict_List.asp
    下载
    http://www.adr.gov.cn/download/panyuguang/adrnew.rar
      

  4.   

    我发的帖子,其中有一个分页的类,看了就明白了
    http://community.csdn.net/Expert/topic/3086/3086769.xml?temp=.71719
      

  5.   

    给你一个我自己用的分页文件,很简单的!
    <?PHP
      $sql = "select count(*) as amount from ".$table;
      $result = mysql_query($sql);
      $row =mysql_fetch_array($result);
      $amount = $row['amount'];
      // 获取当前页数
      if( isset($_GET['page']) ){
        $page=intval($_GET['page']);
      }else{
        $page=1;
      }
      $page_size=10;// 每页数量
      /* 记算总共有多少页
       * 如果总数据量小于$PageSize,那么只有一页
       *取总数据量除以每页数的余数
       *如果有余数,则页数等于总数据量除以每页数的结果取整再加一
       *如果没有余数,则页数等于总数据量除以每页数的结果
       */
      if($amount){
        if($amount<$page_size){
          $page_count = 1;
        }
        if($amount%$page_size){
          $page_count = (int)($amount/$page_size) + 1;
        }else{
          $page_count = $amount/$page_size;
        }
      }else{
        $page_count = 0;
      }  // 翻页链接
      $page_string = '';
      if( $page == 1 ){
        $page_string .= '首页|上一页|';
      }else{
        $page_string .= '<a href=?page=1>首页</a>|<a href=?page='.($page-1).'>上一页</a>|';
      }
      if( ($page == $page_count) || ($page_count == 0) ){
        $page_string .= '下一页|尾页';
      }else{
        $page_string .= '<a href=?page='.($page+1).'>下一页</a>|<a href=?page='.$page_count.'>尾页</a>';
      }//获取数据,以二维数组格式返回结果
      if( $amount ){
       $sql = "select * from ".$table." order by id desc limit ".($page-1)*$page_size.",".$page_size;
       $result = mysql_query($sql);
       while ($rows =mysql_fetch_array($result)){
           $rowset[] = $rows;
       }
    }else{
       $rowset = array();
    }
    ?>翻页连接显示输出用:
    echo $page_string就可以了
    页面数据用
    foreach($rowset as $rs){
     $rs[id]
     ;
    }
    就可以了!