谢谢你的直言不讳了。
有何高见,你也亮相一下嘛。
实例重新帖一下。
/*
实例:
$sql = "select count(*) from t_article";
$db->query($sql);
$db->next_record();
$recordcount = $db->f(0);//记录总数

$ofun = new page;
$ofun->pagearg = "pagenum";//设置分页参数名,默认为page
$trunpage = $ofun->show_page($recordcount, 20);//得到分页信息

$sql = "select * from t_article order by tdate desc ".$ofun->limit;
$db->query($sql);
 */

解决方案 »

  1.   

    修改了一下,重新发一次。
    你的评价能不能具体一点呢?我好改一下啊。
    反正是交流技术,不用说的这么笼统嘛。
    <?php
    class page{
    /*
    实例:
    $sql = "select count(*) from t_article";
    $db->query($sql);
    $db->next_record();
    $recordcount = $db->f(0);//记录总数

    $ofun = new page;
    $ofun->pagearg = "pagenum";//设置分页参数名,默认为page
    $ofun->ar = array("&laquo;首页", "&#8249;前页", "后页&#8250;", "末页&raquo;");//可以设置成图片HTML代码
    $trunpage = $ofun->show_page($recordcount, 20);//得到分页信息

    $sql = "select * from t_article order by tdate desc ".$ofun->limit;
    $db->query($sql);
     */ var $pagecount;         //总页数

    var $limit = "";        //分页时用到的limit参数

    var $pagearg = "page";  //分页参数名称

    var $ar = array("&laquo;首页", "&#8249;前页", "后页&#8250;", "末页&raquo;");
    /*
     * 功能:分页函数
     * 参数 $recordcount 为记录总数
     * 参数 $pagesize 为每页显示记录数,默认为20
     */
    function show_page($recordcount, $pagesize = 20){
    $this->pagecount = ceil($recordcount/$pagesize);//总页数
    //取得页码,默认为1
    if(isset($_GET[$this->pagearg])){
    if($_GET[$this->pagearg] <= 0) $page = 1;
    else $page = $_GET[$this->pagearg];
    }else {
    $page = 1;
    }
    $str = "";
    $urlar = $_GET;
    unset($urlar[$this->pagearg]);
    if($urlar){
    foreach($urlar as $key=>$val){
    if($str == "") $str = "?$key=$val";
    else $str .= "&$key=$val";
    }
    $str .= "&$this->pagearg=";
    }else{
    $str = "?$this->pagearg=";
    }
    if($page > $this->pagecount) $page = $this->pagecount;

    $this->limit = "limit ".($page-1)*$pagesize.",".$pagesize;

    $trunpage = "";
    if($page == 1){
    $trunpage .= $this->ar[0]."&nbsp;".$this->ar[1]."&nbsp;";
    }else {
    $trunpage .= '<a href="'.$str.'1">'.$this->ar[0].'</a> <a href="'.$str.($page-1).'">'.$this->ar[1].'/a> ';
    }
    $trunpage .= "&nbsp;共[$recordcount]条记录/共[$this->pagecount]页&nbsp;";
    if($page == $this->pagecount){
    $trunpage .= $this->ar[2]."&nbsp;".$this->ar[3]."&nbsp;";
    }else {
    $trunpage .= ' <a href="'.$str.($page+1).'">'.$this->ar[2].'</a> <a href="'.$str.$this->pagecount.'">'.$this->ar[3].'</a>';
    }
    $select = "<select onchange='location.href=this.options[this.selectedIndex].value'>\n";
    for($i = 1; $i <= $this->pagecount; $i++){
    $select .= "<option value=\"".$str.$i."\">$i</option>\n";
    }
    $select .= "</select>";
    return $trunpage.$select;
    }

    }
    ?>
      

  2.   

    http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=194361
      

  3.   

    稻草人,我觉得分页的基本模块还是有的。
    不管列表是什么样的?
    都要统计总记录数和取得其中一页的记录。
    不知道你说的“不一样”中还有其它什么因素吗?
    我这里没有利用模版,再利用模版的话,就可以随便改变样式了。
    不过我只是想体现一下分页的基本功能,及解决因URL变量传递带来的问题。
      

  4.   

    能不能更通用些?根据字段数组自动设置表格并应用给定的CSS
      

  5.   

    “分页类”?
    这个名字取得有问题。
    分明只是产生“分页导航条”嘛建议植入简单的模板处理代码。这样外观样式可完全由又模板控制,而避免在方法中输出html标记。也可不必为适用范围广而附加许多控制参数。
      

  6.   

    小邪说的好啊。其实我这个东东很多人都知道的那。
    我不是想追求功能的完善,只是想表达分页不用那么花俏。
    我前些日子刚弄出来这个,其实觉得挺好用的,至少不必考虑烦人的url变量的传递。
    所以发上来了,但好像效果并没有我想的那么好。
      

  7.   

    个人觉得,挺喜欢这个帖的.虽然里面的功能自己都可以实现,但还是研究了这个帖
    不少时间.可能我想的和大家不一样,最近一直在考虑写类的感觉的问题.同样一个功能,实现
    的方法不同.因为自己水平还不够,也不敢谈诸如怎么写效率高一点的问题.而且,
    在现在的硬件,数据库的水平下,一般的工作,代码只要不要写的太离谱,总不会慢的
    让人受不了.所以,在个人目前的水平下,考虑效率是一件多少有点可笑的事.我把精力放在了代码
    的整理上,自己称为----把代码弄的优雅一点.
    这么说,好象有点...呵...不过,在下是半路玩PHP的,没有上过专门写程序的课,一段
    时间再打回去看自己过去写的代码,觉得好难看,一点都不漂亮,再看看各位高手的代码,
    就给一种很优雅的感觉.写一个类,就算是再简单的,要将代码弄的简洁易读,不是那么容易.所以,仔细研究了
    楼主的类,感受挺多,在此,向楼主表示感谢:)