谁后PHP 通用的分页代码? 最好好精简 简单 通用  没有GUB 的 呵呵  使用的好的话 给你加分  !thank you !

解决方案 »

  1.   

    很多cms系统都有的,譬如dedecms...
      

  2.   

    <?
    //为了避免重复包含文件而造成错误,加了判断函数是否存在的条件:
    if(!function_exists(pageft)){ //定义函数pageft(),三个参数的含义为:
    //$totle:信息总数;
    //$displaypg:每页显示信息数,这里设置为默认是20;
    //$url:分页导航中的链接,除了加入不同的查询信息“page”外的部分都与这个URL相同。
    //   默认值本该设为本页URL(即$_SERVER["REQUEST_URI"]),但设置默认值的右边只能为常量,所以该默认值设为空字符串,在函数内部再设置为本页URL。
    function pageft($totle,$displaypg=20,$url=''){//定义几个全局变量: 
    //$page:当前页码;
    //$firstcount:(数据库)查询的起始项;
    //$pagenav:页面导航条代码,函数内部并没有将它输出;
    //$_SERVER:读取本页URL“$_SERVER["REQUEST_URI"]”所必须。
    global $page,$firstcount,$pagenav,$_SERVER;//为使函数外部可以访问这里的“$displaypg”,将它也设为全局变量。注意一个变量重新定义为全局变量后,原值被覆盖,所以这里给它重新赋值。
    $GLOBALS["displaypg"]=$displaypg;if(!$page) $page=1;//如果$url使用默认,即空值,则赋值为本页URL:
    if(!$url){ $url=$_SERVER["REQUEST_URI"];}//URL分析:
    $parse_url=parse_url($url);
    $url_query=$parse_url["query"]; //单独取出URL的查询字串
    if($url_query){
    //因为URL中可能包含了页码信息,我们要把它去掉,以便加入新的页码信息。
    //这里用到了正则表达式,请参考“PHP中的正规表达式”(http://www.pconline.com.cn/pcedu/empolder/wz/php/10111/15058.html)
    $url_query=ereg_replace("(^|&)page=$page","",$url_query);//将处理后的URL的查询字串替换原来的URL的查询字串:
    $url=str_replace($parse_url["query"],$url_query,$url);//在URL后加page查询信息,但待赋值: 
    if($url_query) $url.="&page"; else $url.="page";
    }else {
    $url.="?page";
    }页码计算:
    $lastpg=ceil($totle/$displaypg); //最后页,也是总页数
    $page=min($lastpg,$page);
    $prepg=$page-1; //上一页
    $nextpg=($page==$lastpg ? 0 : $page+1); //下一页
    $firstcount=($page-1)*$displaypg;//开始分页导航条代码:
    $pagenav="显示第 <B>".($totle?($firstcount+1):0)."</B>-<B>".min($firstcount+$displaypg,$totle)."</B> 条记录,共 $totle 条记录<BR>";//如果只有一页则跳出函数:
    if($lastpg<=1) return false;$pagenav.=" <a href='$url=1'>首页</a> ";
    if($prepg) $pagenav.=" <a href='$url=$prepg'>前页</a> "; else $pagenav.=" 前页 ";
    if($nextpg) $pagenav.=" <a href='$url=$nextpg'>后页</a> "; else $pagenav.=" 后页 ";
    $pagenav.=" <a href='$url=$lastpg'>尾页</a> ";//下拉跳转列表,循环列出所有页码:
    $pagenav.=" 到第 <select name='topage' size='1' onchange='window.location=\"$url=\"+this.value'>\n";
    for($i=1;$i<=$lastpg;$i++){
    if($i==$page) $pagenav.="<option value='$i' selected>$i</option>\n";
    else $pagenav.="<option value='$i'>$i</option>\n";
    }
    $pagenav.="</select> 页,共 $lastpg 页";
    }
    }
    ?>
      

  3.   

    http://www.52codes.com/code.php?id=23197只需提供页数,当前页,即可
      

  4.   

    来源: http://bbs.51freelive.com/viewtopic.php?f=7&t=31
    分页对象设计帖子由 paanjoyfy_phpbb » 2009-04-08 11:33
    一个简洁的分页类:
    /**
    * Class FreeY_Page_Model
    *
    * @category
    * @package
    * @subpackage
    * @copyright
    * @license
    */
    class FreeY_Page_Model
    {
    /**
    * var
    */
    private $page_array = null;
    /**
    * var
    */
    private $page = null;
    /**
    * var
    */
    private $count = null;
    /**
    * var
    */
    private $page_count = null;
    /**
    * var
    */
    private $size = null;
    /**
    * var
    */
    private $page_next = null;
    /**
    * var
    */
    private $page_back = null;
    /**
    * var
    */
    private $size_max = 10000;
    /**
    * _method
    *
    * @param $var
    * @return viod
    */
    public function __construct($count, $page, $size = 9)
    {
    $this->count = $count;
    $this->page = $page;
    $this->size = $size;
    $this->_setSize();
    $this->_setCount();
    $this->_setPageCount();
    $this->_setPage();
    }/**
    * _method
    *
    * @param $var
    * @return viod
    */
    public function getPageArray()
    {
    $this->_setPageArray();
    return $this->page_array;
    }protected function _setPageArray()
    {
    $this->_setPageNext();
    $this->_setPageBack();$page['size'] = $this->size;
    $page['count'] = $this->count;
    $page['page_count'] = $this->page_count;
    $page['page'] = $this->page;
    $page['page_back'] = $this->page_back;
    $page['page_next'] = $this->page_next;
    $page['pages'] = $this->getPagePages();$this->page_array = $page;
    }/**
    * _setSize
    *
    * @param $var
    * @return viod
    */
    private function _setSize()
    {
    $this->size = intval($this->size);
    if($this->size < 1)
    $this->size = 1;
    if($this->size > $this->size_max)
    $this->page = $this->size_max;
    }/**
    * _setCount
    *
    * @param $var
    * @return viod
    */
    private function _setCount()
    {
    $this->count = intval($this->count);
    }/**
    * _setPageCount
    *
    * @param $var
    * @return viod
    */
    private function _setPageCount()
    {
    $this->page_count = ceil( $this->count / $this->size);
    $this->page_count = intval($this->page_count);
    if($this->page_count < 1)
    $this->page_count = 1;
    }/**
    * _setPage
    *
    * @param $var
    * @return viod
    */
    private function _setPage()
    {
    $this->page = intval($this->page);
    if($this->page < 1)
    $this->page = 1;
    if($this->page_count < $this->page)
    $this->page = $this->page_count;
    }/**
    * _setPageNext
    *
    * @param $var
    * @return viod
    */
    private function _setPageNext()
    {
    if($this->page == $this->page_count)
    return ;
    $this->page_next = $this->page + 1;
    }/**
    * _setPageBack
    *
    * @param $var
    * @return viod
    */
    private function _setPageBack()
    {
    if($this->page == 1)
    return ;
    $this->page_back = $this->page - 1;
    }}
    //file end--------------------------------------------------------->
    ?>在这个的基础上可以增加分页helper.FreeY_Page_Helper_Db, FreeY_Page_Helper_View.
      

  5.   

    <?php
    /**
     * filename: pager.class.php
     * @package:phpbean
     * @author :feifengxlq<feifengxlq#gmail.com>
     * @copyright :Copyright 2006 feifengxlq
     * @license:version 2.0
     * @create:2006-5-31
     * @modify:2006-6-1
     * @modify:feifengxlq 2006-11-4
     * @staryjk 2008-09-22
     * 2.0增加功能:支持自定义风格,自定义样式,同时支持PHP4和PHP5,
     * example:
     * 模式四种分页模式:
       require_once('../libs/classes/page.class.php');
       $page=new page(array('total'=>1000,'perpage'=>20));
       echo 'mode:1<br>'.$page->show();
       echo '<hr>mode:2<br>'.$page->show(2);
       echo '<hr>mode:3<br>'.$page->show(3);
       echo '<hr>mode:4<br>'.$page->show(4);
       开启AJAX:
       $ajaxpage=new page(array('total'=>1000,'perpage'=>20,'ajax'=>'ajax_page','page_name'=>'test'));
       echo 'mode:1<br>'.$ajaxpage->show();
       采用继承自定义分页显示模式:
      
     */
    //在下页
      

  6.   

    class page 
    {
     /**
      * config ,public
      */
     var $page_name="PB_page";//page标签,用来控制url页。比如说xxx.php?PB_page=2中的PB_page
     var $next_page='>';//下一页
     var $pre_page='<';//上一页
     var $first_page='First';//首页
     var $last_page='Last';//尾页
     var $pre_bar='<<';//上一分页条
     var $next_bar='>>';//下一分页条
    // var $format_left='[';
    // var $format_right=']';
     var $format_left='&nbsp;';
     var $format_right='&nbsp;';
     var $is_ajax=false;//是否支持AJAX分页模式 
     
     /**
      * private
      *
      */ 
     var $pagebarnum=15;//控制记录条的个数。
     var $totalpage=0;//总页数
     var $ajax_action_name='';//AJAX动作名
     var $nowindex=1;//当前页
     var $url="";//url地址头
     var $offset=0;
     
     /**
      * constructor构造函数
      *
      * @param array $array['total'],$array['perpage'],$array['nowindex'],$array['url'],$array['ajax']...
      */
     function page($array)
     {
      if(is_array($array)){
         if(!array_key_exists('total',$array))$this->error(__FUNCTION__,'need a param of total');
         $total=intval($array['total']);
         $perpage=(array_key_exists('perpage',$array))?intval($array['perpage']):10;
         $nowindex=(array_key_exists('nowindex',$array))?intval($array['nowindex']):'';
         $url=(array_key_exists('url',$array))?$array['url']:'';
      }else{
         $total=$array;
         $perpage=10;
         $nowindex='';
         $url='';
      }
      if((!is_int($total))||($total<0))$this->error(__FUNCTION__,$total.' is not a positive integer!');
      if((!is_int($perpage))||($perpage<=0))$this->error(__FUNCTION__,$perpage.' is not a positive integer!');
      if(!empty($array['page_name']))$this->set('page_name',$array['page_name']);//设置pagename
      $this->_set_nowindex($nowindex);//设置当前页
      $this->_set_url($url);//设置链接地址
      $this->totalpage=ceil($total/$perpage);
      $this->offset=($this->nowindex-1)*$perpage;
      if(!empty($array['ajax']))$this->open_ajax($array['ajax']);//打开AJAX模式
     }
     /**
      * 设定类中指定变量名的值,如果改变量不属于这个类,将throw一个exception
      *
      * @param string $var
      * @param string $value
      */
     function set($var,$value)
     {
      if(in_array($var,get_object_vars($this)))
         $this->$var=$value;
      else {
       $this->error(__FUNCTION__,$var." does not belong to PB_Page!");
      }
      
     }
     /**
      * 打开倒AJAX模式
      *
      * @param string $action 默认ajax触发的动作。
      */
     function open_ajax($action)
     {
      $this->is_ajax=true;
      $this->ajax_action_name=$action;
     }
     /**
      * 获取显示"下一页"的代码
      * 
      * @param string $style
      * @return string
      */
     function next_page($style='')
     {
      if($this->nowindex<$this->totalpage){
       return $this->_get_link($this->_get_url($this->nowindex+1),$this->next_page,$style);
      }
      return '<span class="'.$style.'">'.$this->next_page.'</span>';
     }
     
     /**
      * 获取显示“上一页”的代码
      *
      * @param string $style
      * @return string
      */
     function pre_page($style='')
     {
      if($this->nowindex>1){
       return $this->_get_link($this->_get_url($this->nowindex-1),$this->pre_page,$style);
      }
      return '<span class="'.$style.'">'.$this->pre_page.'</span>';
     }
     
     //在下页
    ?>
      

  7.   

    /**
      * 获取显示“首页”的代码
      *
      * @return string
      */
     function first_page($style='')
     {
      if($this->nowindex==1){
          return '<span class="'.$style.'">'.$this->first_page.'</span>';
      }
      return $this->_get_link($this->_get_url(1),$this->first_page,$style);
     }
     
     /**
      * 获取显示“尾页”的代码
      *
      * @return string
      */
     function last_page($style='')
     {
      if($this->nowindex==$this->totalpage){
          return '<span class="'.$style.'">'.$this->last_page.'</span>';
      }
      return $this->_get_link($this->_get_url($this->totalpage),$this->last_page,$style);
     }
     
     function nowbar($style='',$nowindex_style='')
     {
      $plus=ceil($this->pagebarnum/2);
      if($this->pagebarnum-$plus+$this->nowindex>$this->totalpage)$plus=($this->pagebarnum-$this->totalpage+$this->nowindex);
      $begin=$this->nowindex-$plus+1;
      $begin=($begin>=1)?$begin:1;
      $return='';
      for($i=$begin;$i<$begin+$this->pagebarnum;$i++)
      {
       if($i<=$this->totalpage){
        if($i!=$this->nowindex)
            $return.=$this->_get_text($this->_get_link($this->_get_url($i),$i,$style));
        else 
            $return.=$this->_get_text('<span class="'.$nowindex_style.'">'.$i.'</span>');
       }else{
        break;
       }
       $return.="\n";
      }
      unset($begin);
      return $return;
     }
     /**
      * 获取显示跳转按钮的代码
      *
      * @return string
      */
     function select()
     {
       $return='<select name="PB_Page_Select">';
      for($i=1;$i<=$this->totalpage;$i++)
      {
       if($i==$this->nowindex){
        $return.='<option value="'.$i.'" selected>'.$i.'</option>';
       }else{
        $return.='<option value="'.$i.'">'.$i.'</option>';
       }
      }
      unset($i);
      $return.='</select>';
      return $return;
     }
     
     /**
      * 获取mysql 语句中limit需要的值
      *
      * @return string
      */
     function offset()
     {
      return $this->offset;
     }
     
     /**
      * 控制分页显示风格(你可以增加相应的风格)
      *
      * @param int $mode
      * @return string
      */
     function show($mode=1)
     {
      switch ($mode)
      {
       case '1':
        $this->next_page='下一页';
        $this->pre_page='上一页';
        return $this->pre_page().$this->nowbar().$this->next_page().'第'.$this->select().'页';
        break;
       case '2':
        $this->next_page='下一页';
        $this->pre_page='上一页';
        $this->first_page='首页';
        $this->last_page='尾页';
        return $this->first_page().$this->pre_page().'[第'.$this->nowindex.'页]'.$this->next_page().$this->last_page().'第'.$this->select().'页';
        break;
       case '3':
        $this->next_page='下一页';
        $this->pre_page='上一页';
        $this->first_page='首页';
        $this->last_page='尾页';
        return $this->first_page().$this->pre_page().$this->next_page().$this->last_page();
        break;
       case '4':
        $this->next_page=' 下一页 ';
        $this->pre_page=' 上一页 ';
        $this->first_page=' 首页 ';
        $this->last_page=' 尾页 ';
        return $this->first_page().$this->pre_page()."<div class=\"pagenavi\" id=\"lopage\">".$this->nowbar()."</div>".$this->next_page().$this->last_page();
        break;
       case '5':
        return $this->pre_bar().$this->pre_page().$this->nowbar().$this->next_page().$this->next_bar();
        break;
      }
      
     }
    /*----------------private function (私有方法)-----------------------------------------------------------*/
     /**
      * 设置url头地址
      * @param: String $url
      * @return boolean
      */
     function _set_url($url="")
     {
      if(!empty($url)){
          //手动设置
       $this->url=$url.((stristr($url,'?'))?'&':'?').$this->page_name."=";
      }else{
          //自动获取
       if(empty($_SERVER['QUERY_STRING'])){
           //不存在QUERY_STRING时
        $this->url=$_SERVER['REQUEST_URI']."?".$this->page_name."=";
       }else{
           //
        if(stristr($_SERVER['QUERY_STRING'],$this->page_name.'=')){
            //地址存在页面参数
         $this->url=str_replace($this->page_name.'='.$this->nowindex,'',$_SERVER['REQUEST_URI']);
         $last=$this->url[strlen($this->url)-1];
         if($last=='?'||$last=='&'){
             $this->url.=$this->page_name."=";
         }else{
             $this->url.='&'.$this->page_name."=";
         }
        }else{
            //
         $this->url=$_SERVER['REQUEST_URI'].'&'.$this->page_name.'=';
        }//end if    
       }//end if
      }//end if
     }
     
     /**
      * 设置当前页面
      *
      */
     function _set_nowindex($nowindex)
     {
      if(empty($nowindex)){
       //系统获取
       
       if(isset($_GET[$this->page_name])){
        $this->nowindex=intval($_GET[$this->page_name]);
       }
      }else{
          //手动设置
       $this->nowindex=intval($nowindex);
      }
     }
      
     /**
      * 为指定的页面返回地址值
      *
      * @param int $pageno
      * @return string $url
      */
     function _get_url($pageno=1) {
      return $this->url.$pageno;
     }
     
     /**
      * 获取分页显示文字,比如说默认情况下_get_text('<a href="">1</a>')将返回[<a href="">1</a>]
      *
      * @param String $str
      * @return string $url
      */ 
     function _get_text($str)
     {
      return $this->format_left.$str.$this->format_right;
     }
     
     /**
       * 获取链接地址
     */
     function _get_link($url,$text,$style=''){
      $style=(empty($style))?'':'class="'.$style.'"';
      if($this->is_ajax){
          //如果是使用AJAX模式
       return '<a '.$style.' href="javascript:'.$this->ajax_action_name.'(\''.$url.'\')">'.$text.'</a>';
      }else{
       return '<a '.$style.' href="'.$url.'">'.$text.'</a>';
      }
     }
     /**
       * 出错处理方式
     */
     function error($function,$errormsg)
     {
         die('Error in file <b>'.__FILE__.'</b> ,Function <b>'.$function.'()</b> :'.$errormsg);
     }
    }
    //自定义风格
    class mypage extends page
    {
        function mypage($array)
     {
         parent::page($array);
      $this->first_page=1;
      $this->last_page=$this->totalpage; }
     
     function show()
     {
      $pagestr='<div class="pagenavi" id="lopage">页:';
      $pagestr.=$this->first_page().' ';
      $pagestr.=$this->nowbar('','curr');
      $pagestr.='<span class="break">...</span>';
      $pagestr.=$this->last_page();
      $pagestr.='   (总计<span class="num">'.$this->totalpage.'</span>页) </div>';
      $pagestr.='</div>';
      return $pagestr;
     }
    }
      

  8.   

    [/img][img=http://www.wzdm.net/logo.gif]
    我写了两个方式,一个是php内嵌的分页,一个是smarty插件的分页,我就不贴了,浪费空间
      

  9.   

    如何实现分页,包括两个函数,两个调用
    1)两个函数
    <?
    //分页函数 function genpage(&$sql,$page_size=2)
     {
          global $prepage,$nextpage,$pages,$sums;  //out param
          $page = $_GET["page"];
          $eachpage = $page_size;
          $pagesql = strstr($sql," from ");
          $pagesql = "select count(*) as ids ".$pagesql;
          $conn = mysql_query($pagesql) or die(mysql_error());
          if($rs = mysql_fetch_array($conn)) $sums = $rs[0];
          $pages = ceil(($sums-0.5)/$eachpage)-1;
          $pages = $pages>=0?$pages:0;
          $prepage = ($page>0)?$page-1:0;
          $nextpage = ($page<$pages)?$page+1:$pages;  
          $startpos = $page*$eachpage;
        $sql .=" limit $startpos,$eachpage ";
     }
     //显示分页
    function showpage()
    {
        global $page,$pages,$prepage,$nextpage,$queryString; //param from genpage function
        $shownum =10/2;
        $startpage = ($page>=$shownum)?$page-$shownum:0;
        $endpage = ($page+$shownum<=$pages)?$page+$shownum:$pages;
       
        echo "共".($pages+1)."页:&nbsp;"; 
        if($page>0)echo "<a href=$PHP_SELF?page=0$queryString>首页</a>";
        if($startpage>0)
            echo " ... <b><a href=$PHP_SELF?page=".($page-$shownum*2)."$queryString>&laquo;</a></b>";
        for($i=$startpage;$i<=$endpage;$i++)
        {
            if($i==$page)    echo "&nbsp;<b>[".($i+1)."]</b>&nbsp;";
            else        echo "&nbsp;<a href=$PHP_SELF?page=$i$queryString>".($i+1)."</a>&nbsp;";
        }
        if($endpage<$pages)
            echo "<b><a href=$PHP_SELF?page=".($page+$shownum*2)."$queryString>&raquo;</a></b> ... ";
        if($page<$pages)
            echo "<a href=$PHP_SELF?page=$pages$queryString>尾页</a>";} //显示带分类的分页
    function showpage1()
    {
    $fenlei=$_GET["fenleiid"];
        global $page,$pages,$prepage,$nextpage,$queryString; //param from genpage function
        $shownum =10/2;
        $startpage = ($page>=$shownum)?$page-$shownum:0;
        $endpage = ($page+$shownum<=$pages)?$page+$shownum:$pages;
       
        echo "共".($pages+1)."页:&nbsp;"; 
        if($page>0)echo "<a href=$PHP_SELF?fenleiid=$fenlei&page=0$queryString>首页</a>";
        if($startpage>0)
            echo " ... <b><a href=$PHP_SELF?fenleiid=$fenlei&page=".($page-$shownum*2)."$queryString>&laquo;</a></b>";
        for($i=$startpage;$i<=$endpage;$i++)
        {
            if($i==$page)    echo "&nbsp;<b>[".($i+1)."]</b>&nbsp;";
            else        echo "&nbsp;<a href=$PHP_SELF?fenleiid=$fenlei&page=$i$queryString>".($i+1)."</a>&nbsp;";
        }
        if($endpage<$pages)
            echo "<b><a href=$PHP_SELF?fenleiid=$fenlei&page=".($page+$shownum*2)."$queryString>&raquo;</a></b> ... ";
        if($page<$pages)
            echo "<a href=$PHP_SELF?fenleiid=$fenlei&page=$pages$queryString>尾页</a>";}
    ?>2)两个调用
    第一个
    <?php
    $sql="select * from liuyan order by ly_id desc";
    genpage($sql);  //只需要正常代码加上这一行就ok。
    $conn=mysql_query($sql,$connec);
    while($rs=mysql_fetch_array($conn)){  
    ?>
    第二个
    <?php 
     }
     ?> 
     <?php  
    showpage(); //显示页
    ?>
    <?php
    mysql_close();

    ?>
      

  10.   

    <HTML><HEAD>
    <TITLE></TITLE>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <link rel="stylesheet" href="book.css" type="text/css">
    </HEAD>
    <body>
    <center>
    <?php include("top.php"); ?><table width="760" border=0 cellspacing=0 cellpadding=0 align=center bgcolor="#FFFFFF" class="grayline">
    <tr><td align=center height=50>
    <table border="0" width="100%" id="table1" height="165">
    <tr>
    <td>
    <object classid="clsid:D27CDB6E-AE6D-11CF-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" border="0" width="752" height="160">
    <param name="movie" value="IMAGES/flash.swf">
    <param name="quality" value="High">
    <param name="scale" value="ExactFit">
    <param name="wmode" value="transparent">
    <embed src="IMAGES/flash.swf" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="752" height="160" quality="High" scale="ExactFit" wmode="transparent"></object> </td>
    </tr>
    </table>
    <table border="0" width="100%" id="table2">
    <tr>
    <td background="IMAGES/indextop.gif">
    <p align="center"> <a href=write.php>我要写留言</a> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;  <a href=index.php>浏览留言</a></td>
    </tr>
    </table>
    <p></td></tr>
    <tr><td><? 
       include 'dbhelper.php';
       
       if($_REQUEST["textfield"]=="")
       {
       $rs=mssql_query("select username, email, url, content, face, portrait, ip,convert(varchar,dt,120) as dt from words");
       }
       else 
       {
        $username=$_REQUEST["textfield"];
        $rs=mssql_query("select username, email, url, content, face, portrait, ip,convert(varchar,dt,120) as dt from words where username='$username'");
       }
       
       if(mssql_num_rows($rs)==0)
       {
        ?>
        <script type="text/javascript">
        alert("没有查询到你要找的内容!");
        </script>
        <? 
       
        $rs=mssql_query("select username, email, url, content, face, portrait, ip,convert(varchar,dt,120) as dt from words");
       }
       //每页几行
        $pagesize=3;
        //共分几页
        $pagecount=ceil(mssql_num_rows($rs)/$pagesize);
       
        //判断有没有值
        //$page=1;
        //if(isset($_GET["page"]))
        //$page=$_GET["page"];
        if($_GET["page"]<1)
        {
        $page=1;
        }
        if ($_GET["page"]>$pagecount)
        {
        $page=$pagecount;
        }
        if (0<$_GET["page"]&&$_GET["page"]<($pagecount+1))
        {
        $page=$_GET["page"];
        }?><table cellSpacing="1" cellPadding="3" width="680" align="center" bgColor="#000000" border="0" style="word-break:break-all"><?
    //游标指针的位置
    mssql_data_seek($rs,($page-1)*$pagesize);
    for($i=0;$i<$pagesize;$i++)
        {
    $as=mssql_fetch_array($rs);
    if($as==false)
    {
    break;
    }
        ?>
      <tr>
    <td vAlign="top" width="25%" bgColor="#f7f7f7" rowSpan="2" align=center>
    <table border=0 width=85%><tr><td align=center></td>
    </tr>
    <tr>
      <td><img border=0 src="images/face/pic<? echo $as["portrait"]; ?>.gif" width=60><br>
      姓名:<?echo $as["username"]; ?><br>
    来自:whitehouse<br>
    邮件:<a href=mailto:<?echo $as["email"]; ?>><img src=images/mail.gif border=0 alt=""></a><?echo $as["email"]; ?><br>
    主页:<a target='_blank' href=#><img src=images/home.gif border=0 alt=""></a><?echo $as["url"]; ?></td></tr>
    </table> </td>
    <td width="75%" height="20" bgColor="#ffffff">发表于:<? echo $as[dt]; ?></td>
      </tr>
      <tr>
    <td vAlign="top" bgColor="#ebebeb" width='75%' height=120 onMouseOver="bgColor='#FFffff'" onMouseOut="bgColor='#ebebeb'"><img bord=0 src="images/face/face<? echo $as["face"]; ?>.gif"><?echo htmlspecialchars($as["content"]); ?>
    </td>
      </tr>
      <?
        }
      ?>
    </table><div>
    <form>
      <div align="center">
        <p>
        <?
    if($page!=1)
    {
        ?>
        <a href=index.php?page=1>首页</a>|<a href=index.php?page=<? echo $page-1; ?>>上页</a><? } ?>  
        <?
    if ($page!=$pagecount){
        ?>
        <a href=index.php?page=<? echo $page+1; ?>>下页</a>|<a href=index.php?page=<? echo $pagecount; ?>>尾页</a><? } ?> 跳到第
          <label>
          <input name="page" type="text" size="4">
          </label>
          页        当前<? echo $page."/".$pagecount;?></p>
        <p>&nbsp; </p>
      </div></form>
    </div><!--关于显示留言内容代码-->
        <form name="form1" method="post" action="index.php">
          <div align="center">根据主题搜索:
            <input type="text" name="textfield">
            <input type="submit" name="Submit" value="搜索">
            
          </div>
        </form>
        <table cellSpacing="0" cellPadding="0" width="680" align="center" bgColor="#FFFFFF" border="0">
    <TR><TD height=8> </TD></TR></TABLE></td>
    </tr></table>
    <?php include("down.php"); ?></center>
    </body></html>
      

  11.   

    连接数据库的文件(DBConn.php)
    <?phpclass DBConn {
    private $db;
    public function openConnection(){
    $dsn = "mysql:host=localhost;dbname=user";
       $this->db = new PDO($dsn,'root','',array(PDO::ATTR_PERSISTENT=>true));
       return $this->db;
    }

    public function closeConnection(){
    $this->db = null;
    }
    }?>执行数据库查询的文件(DoPage.php)
    <?php
    // 加载文件
    require 'DBConn.php';
    class DoPage {
    //连接数据库的主机名
    private $host="localhost";
    //连接数据库的用户名
    private $username="root";
    //连接数据库的密码
    private $password="";
    //所要操作的数据库的名称
    private $dbname="user";

    // 获得数据库连接
    public function getConnection(){
    // 获取数据库连接
    $conn=mysql_connect($this->host,$this->username,$this->password) or die("数据库连接失败");
    // 选择所用的数据库
    mysql_select_db($this->dbname,$conn);
    // 返回数据库连接
    return $conn;
    }

    // 获得记录的总记录数
    public function getRCount_sql($sql){
    // 获得连接
    $conn=$this->getConnection();
    // 执行sql语句
    $result=mysql_query($sql,$conn);
    // 初始化$rowsCount
    $rowsCount=0;
    // 判断结果集中是否有多条记录
    while($row=mysql_fetch_array($result)){
    // 将结果集放在一个数组中
    $arr[]=$row;
    // 获得总记录数
    $rowsCount=count($arr);
    }
    // 释放$result
    mysql_free_result($result);
    // 返回结果集的总记录数目
    return $rowsCount;
    }

    // 执行分页查询
    public function queryPage($sql,$currentPage,$pageSize){
    // 判断传入的每页显示的信息条数是不是一个合法的数字
    if($pageSize<1)
    // 如果每页显示的数字不合法,则将$pageSize的值设为12(合法的数字)
    $pageSize=12;
    // 判断传入的当前页的数字是不是一个合法的数字
    if($currentPage<1)
    // 如果当前页不是一个合法的数字,则将$currentPage的值设为1(合法的数字)
    $currentPage=1;
    // 设置分页显示的sql语句
    $sql.=" limit ".$pageSize." offset ".($currentPage-1)*$pageSize;
    // 创建一个数组
    $data=array();
    // 获得数据库连接
    $conn=$this->getConnection();
    // 执行sql语句
    $result=mysql_query($sql,$conn);
    // 判断结果集中是不是有多条记录
    while($row=mysql_fetch_array($result)){
    // 将结果集放在一个数组中
    $data[]=$row;
    }
    // 释放结果集
    mysql_free_result($result);
    // 返回$data
    return $data;
    }
    }?>
    构造 “首页 上一页  下一页  末页”的文件(PageUtil.php)<?php
    // 该类的作用是为了构造出“首页  上一页   下一页  末页”的字符串
    class PageUtil {
    // 初始化总记录数
    private $rowsCount=0;
    // 每页显示的信息数
    private $perPage=12;
    // 初始化当前页数
    private $currentPage=1;
    // 设置要进行分页的页面
    private $pageName;
    // 设置连接的参数
    private $extParams;

    // 构造“首页  上一页   下一页  末页”的字符串
    public static function formatPage($rowsCount,$pageSize,$currentPage,$pageName,$extParams){
    // 判断当前页数是不是一个合法的页数
    if($currentPage<1)
    // 如果不是一个合法的页数,则将当前页设置为1(合法的页数)
    $currentPage=1;
    // 判断每页显示的信息数目是不是一个合法的数
    if($pageSize<1)
    // 如果不是一个合法的数字,则将每页显示的信息数目设置为12(合法的数字)
    $pageSize=12;
    // 设置总页数。intval()的作用是取整
    $pageCounts=intval($rowsCount/$pageSize);
    // 判断总页数是不是一个合法的页数
    if($pageCounts<1)
    // 如果总页数小于1,则将总页数设置为1
    $pageCounts=1;
    // 如果总页数是一个合法的页数
    // $pageCounts*$pageSiz是总记录数
    // $rowsCount是总记录数
    // ($pageCounts*$pageSize)<$rowsCount的值为真,则$pageCounts+1。要是不为真,则为$pageCounts
    // (这个三木运算符是为了判断$rowsCount/$pageSize是不是能够整除,要是不整除,说明总页数比$pageCounts大1)
    $pageCounts=($pageCounts*$pageSize)<$rowsCount?($pageCounts+1):$pageCounts;
    // 构造一个空的字符串
    $buffer="";

    //isset($extParams)是为了判断是不是存在$extParams变量 并且判断该变量的长度是不是大于1
    if(isset($extParams)&& strlen(trim($extParams))>1){
    $extParams="&".$extParams;
    }
    // 当当前页数是1时,则构造“首页   上一页”,并且这他们不存在连接
    if($currentPage==1){
    $buffer.="首页&nbsp;";
    $buffer.="上一页&nbsp;";
    }
    // 如果当前页数不是第一页,则构造“首页  上一页”,并且他们存在连接
    else{
    $buffer.="<a href=\"".$pageName."?page=1".$extParams."\">首页</a>&nbsp;";
    $buffer.="<a href=\"".$pageName."?page=".($currentPage-1).$extParams."\">上一页</a>&nbsp;";
    }

    // 判断当前页数是不是大于或者等于总页数
    if($currentPage>=$pageCounts){
    // 如果当前页数大于或者等于总页数,则构造“下一页  末页”,并且他们不存在连接
    $buffer.="下一页&nbsp;";
    $buffer.="末页&nbsp;";
    }
    // 如果当前页小于总页数,构造“下一页  末页”,并且他们存在连接
    else{
    $buffer.="<a href=\"".$pageName."?page=".($currentPage+1).$extParams."\">下一页</a>&nbsp;";
    $buffer.="<a href=\"".$pageName."?page=".$pageCounts.$extParams."\">末页</a>";
    }
    // 返回该字符串
    return "<span>共检索出<span>".$rowsCount."</span>条信息,每页<span>".$pageSize."</span>条,页次:<span>".$currentPage."</span>/<span>".$pageCounts."</span>&nbsp;&nbsp;</span>".$buffer;
    }
    }?>实现分页的文件(index.php)<?php
    // 启动session
    session_start();
    $_SESSION['username']=$_GET['username'];
    // 引入文件
    include_once 'opPanelbar.php';
    include_once 'conn/DoPage.php';
    include_once 'conn/PageUtil.php';

    // 创建对象
    $service=new DoPage();


    //$conn=new DBConn();
    //$db=$conn->openConnection();
    //$str = "select * from news_info order by id desc";
    //$prep = $db->prepare($str);
    //$prep->execute();

    // 构造sql语句
    $sql = "select * from news_info order by id desc";

    $currentPage=$_REQUEST['page'];
    if(!isset($currentPage))
    $currentPage=1;
    $pageSize=12;
    $rowsCount=$_REQUEST['rowsCount'];
    if(!isset($rowsCount))
    $rowsCount=$service->getRCount_sql($sql);
    $pageName="index.php";
    $extParams="rowsCount=$rowsCount";
    $pageLine=PageUtil::formatPage($rowsCount,$pageSize,$currentPage,$pageName,$extParams);
    $pageData=$service->queryPage($sql,$currentPage,$pageSize);
    ?>
    <html>
    <head>
    <title>新闻显示页面</title>
    <link href="../style.css" type="text/css" rel="stylesheet" />
    </head>
    <body>
    <div class="loadPageIconButton"><a href="edit_news.php?act=add"><img src="images/button_add_news.gif" /></a></div>
    <div align="center">
    <table border=1 align="center" width="100%" cellpadding="0" cellspacing="1" bgcolor="#FFFFFF">
    <tr class="info_list_header">
    <td>标题</td>
    <td>类型 </td>
    <td>新闻记者</td>
    <td>发布时间</td>
    <td>操作</td>
    </tr>
    <?php
    $rowcounts=count($pageData);
    $step=0;
    for($i=0;$i<$rowcounts;$i++){
    $row=$pageData[$i];
    $step++;
    ?>
    <tr class="info_list_body"  onmouseover="this.className='info_list_body_hover'" 
    onmouseout="this.className='info_list_body'">
    <td><?php echo $row['niTitle'] ?></td>
    <td><?php echo $row['niType'] ?></td>
    <td><?php echo $row['niAuthor'] ?></td>
    <td><?php echo $row['niTime'] ?></td>
    <td>
    <a href="show.php?id=<?php echo $row['id']?>" target="_blank">查看</a>&nbsp;
    <a href="edit_news.php?act=edit&id=<?php echo $row['id']?>">编辑</a>&nbsp;
    <a href="edit_news.php?act=delete&id=<?php echo $row['id']?>" onclick="return confirm('确认删除?');">删除</a>
    </td>
    <?php }
    for($i=$step;$i<$pageSize;$i++){ 
    ?>
    <tr class="info_list_body">
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    <?php
    }
    ?>
    <tr class="info_list_page">
    <td colspan="6"><?php echo $pageLine?></td>
    </tr>
    </table>
    <?php
    include_once("../footer.php");
    ?>
    </body>
    </html>
      

  12.   

    可惜我的blog哎封了,要不然有个以前写的挺好的。