例子
/*
EXAMPLE###########################################
$starttime=microtime();
require("page.php");
$conn=mysql_connect ("127.0.0.1", "root", "8124086");
if(!$conn)
{
   echo"<script>alert('数据库连接出错!!')</script>";
}mysql_select_db("test");
$sql="id,text#t###id";            //Sql="字段名#表名#条件#排序#主键(或索引,唯一)"
$WP=new WP($sql,30,"fdfd");       //$sql,页面大小,标识(区分一个页面多个分页)
while($rs=mysql_fetch_object($WP->result))
{
  echo $rs->text." "; 
}
echo $WP->msg;    分页信息
echo $WP->link;   连接
echo "本页执行时间".abs((microtime()-$starttime)*1000)."毫秒";
*/

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/4226/4226743.xml?temp=.560055
      

  2.   

    更新
    24--26行
    $this->link=$page>1?"<a href=\"".$_SERVER['PHP_SELF']."?".$key."page=".max($page-5,1)."&".$link."\" title=\"上一组\">[<<]</a><a href=\"".$_SERVER['PHP_SELF']."?".$key."page=".($page-1)."&".$link."\" title=\"上一页\">[<]</a>":"[<<][<]";
      for($i=($totalpage-$page<5?$totalpage-10:max($page-5,1));$i<=($page<5?10:$page+5)&&$i<=$totalpage;$i++) $this->link.=($i==$page)?"<font color=\"red\">[".$i."]</font>":"<a href=\"".$_SERVER['PHP_SELF']."?".$key."page=".$i."&".$link."\">[".$i."]</a>";
      $this->link.=$page<$totalpage?"<a href=\"".$_SERVER['PHP_SELF']."?".$key."page=".($page+1)."&".$link."\" title=\"下一页\">[>]</a><a href=\"".$_SERVER['PHP_SELF']."?".$key."page=".min($page+5,$totalpage)."&".$link."\" title=\"下一组\">[>>]</a>":"[>][>>]";
    按组分 10页一组
    代码没有多多小
    但是更美观(开始和结束都可以控制在10页,优于 误会 )
      

  3.   

    zairwolfa(君子兰) 
    我的不是
    类就是类 
    能处理一般分页所遇到的问题
      

  4.   

    共3337页 第60页 共100107条 本页30条 
    [<<][<][55][56][57][58][59][60][61][62][63][64][65][>][>>] 
    本页执行时间90.109毫秒
    10w条
      

  5.   

    10w条100毫秒左右
     pswdf(小邪) 你认为多小才及格呢?请教
      

  6.   

    哈哈 uuq(杜牧) 喜欢的话 改成函数 不难的啊?
      

  7.   

    17行改为 $sql=$sqltemp[2]?"select ".$sqltemp[0]." from ".$sqltemp[1]." where ".$sqltemp[2]:"select ".$sqltemp[0]." from ".$sqltemp[1];
      

  8.   

    25行改为
    for($i=max(($totalpage-$page<5?$totalpage-10:$page-5),1);$i<=($page<5?10:$page+5)&&$i<=$totalpage;$i++) $this->link.=($i==$page)?"<font color=\"red\">[".$i."]</font>":"<a href=\"".$_SERVER['PHP_SELF']."?".$key."page=".$i."&".$link."\">[".$i."]</a>"; 
      

  9.   

    mysql的分页不是很方便吗?limit就可以了
    不过你封装起来也不错
      

  10.   

    楼主能不能把改好的发我一份,谢谢!
    [email protected]
      

  11.   

    LZ,麻烦你也发一份 优化好了的给我,先谢了
    [email protected]
      

  12.   

    function就搞定了....还有,你的html不规范。
      

  13.   

    <font color=\"red\">".$i."</font>
    换成
    <span style=\"color:#FF0000\">".$i."</span>
    href=\"".$_SERVER['PHP_SELF']."?".$key."page=".$i."&".$link."\"
    换成
    href=\"".$_SERVER['PHP_SELF']."?".$key."page=".$i."&amp;".$link."\"
     foreach($_GET as $vkey=>$vaule) if(strtolower($vkey)!=($key."page")) $link.="&$vkey=$vaule";
    换成
     foreach($_GET as $vkey=>$vaule) if(strtolower($vkey)!=($key."page")) $link.="&amp;$vkey=$vaule";
      

  14.   

    推荐你使用JSON串代替
    "字段名#表名#条件#排序#主键(或索引,唯一)"改成:程序开头加
    require_once("JSON.php");
    $json = new Services_JSON();
    字段名#表名#条件#排序#主键(或索引,唯一)
    改成 例如
    $str='{"field":"art_title","table":"art","where":"","key":""}';
    $v = $json->decode($str); 
      

  15.   

    json php包
    http://mike.teczno.com/JSON.tar.gz看喜好了,现在这样也可以
      

  16.   

    分页的效率瓶颈就在于 SELECT LIMIT 很大数字的项目, mysql 的速度是永远提不上去的.分页是个很个性的东西, 算法不复杂且每个网站基本都有所区别, 有的网站需要视图和业务逻辑分离, 或者搞多语言, 你这段代码就废了.PHP / MySQL的分页逻辑要比 .NET / MSSQL 或者 Oracle 直观也简单多了, 如今却搞得像个国家 863 项目一样, 不能不说是研究过滥.
      

  17.   

    楼主 可以给我发一个优化好的吗?/我的油箱:[email protected]
      

  18.   

    不错,但不是最优的;
    1 TOTAL可以用GET传递
    2 页面编号对搜索引擎不是优化的如果能不刷新页面翻页就更好了,类似AJAX思路