本帖最后由 zheng_dong 于 2009-10-31 07:35:19 编辑

解决方案 »

  1.   

    用分页类吧<?php
    class SubPages{private $each_disNums;//每页显示的条目数
    private $nums;//总条目数
    private $current_page;//当前被选中的页
    private $sub_pages;//每次显示的页数
    private $pageNums;//总页数
    private $page_array = array();//用来构造分页的数组
    private $subPage_link;//每个分页的链接
    private $subPage_type;//显示分页的类型
    /*
    __construct是SubPages的构造函数,用来在创建类的时候自动运行.
    @$each_disNums 每页显示的条目数
    @nums    总条目数
    @current_num    当前被选中的页
    @sub_pages      每次显示的页数
    @subPage_link   每个分页的链接
    @subPage_type   显示分页的类型当@subPage_type=1的时候为普通分页模式
            example: 共4523条记录,每页显示10条,当前第1/453页 [首页] [上页] [下页] [尾页]
            当@subPage_type=2的时候为经典分页样式
            example: 当前第1/453页 [首页] [上页] 1 2 3 4 5 6 7 8 9 10 [下页] [尾页]
    */
    function __construct($each_disNums,$nums,$current_page,$sub_pages,$subPage_link,$subPage_type){
       $this->each_disNums=intval($each_disNums);
       $this->nums=intval($nums);
       if(!$current_page){
        $this->current_page=1;
       }else{
        $this->current_page=intval($current_page);
       }
       $this->sub_pages=intval($sub_pages);
       $this->pageNums=ceil($nums/$each_disNums);
       $this->subPage_link=$subPage_link;
       $this->show_SubPages($subPage_type);
       //echo $this->pageNums."--".$this->sub_pages;
    }
    /*
       __destruct析构函数,当类不在使用的时候调用,该函数用来释放资源。
    */
    function __destruct(){
       unset($each_disNums);
       unset($nums);
       unset($current_page);
       unset($sub_pages);
       unset($pageNums);
       unset($page_array);
       unset($subPage_link);
       unset($subPage_type);
    }/*
       show_SubPages函数用在构造函数里面。而且用来判断显示什么样子的分页
    */
    function show_SubPages($subPage_type){
       if($subPage_type == 1){
        $this->subPageCss1();
       }elseif ($subPage_type == 2){
        $this->subPageCss2();
       }
    }
    /*
       用来给建立分页的数组初始化的函数。
    */
    function initArray(){
       for($i=0;$i<$this->sub_pages;$i++){
        $this->page_array[$i]=$i;
       }
       return $this->page_array;
    }
    /*
       construct_num_Page该函数使用来构造显示的条目
       即使:[1][2][3][4][5][6][7][8][9][10]
    */
    function construct_num_Page(){
       if($this->pageNums < $this->sub_pages){
        $current_array=array();
        for($i=0;$i<$this->pageNums;$i++){
         $current_array[$i]=$i+1;
        }
       }else{
        $current_array=$this->initArray();
        if($this->current_page <= 3){
         for($i=0;$i<count($current_array);$i++){
          $current_array[$i]=$i+1;
         }
        }elseif ($this->current_page <= $this->pageNums && $this->current_page > $this->pageNums - $this->sub_pages + 1 ){
         for($i=0;$i<count($current_array);$i++){
          $current_array[$i]=($this->pageNums)-($this->sub_pages)+1+$i;
         }
        }else{
         for($i=0;$i<count($current_array);$i++){
          $current_array[$i]=$this->current_page-2+$i;
         }
        }
       }   return $current_array;
    }/*
    构造普通模式的分页
    共4523条记录,每页显示10条,当前第1/453页 [首页] [上页] [下页] [尾页]
    */
    function subPageCss1(){
       $subPageCss1Str="";
       $subPageCss1Str.="共".$this->nums."条记录,";
       $subPageCss1Str.="每页显示".$this->each_disNums."条,";
       $subPageCss1Str.="当前第".$this->current_page."/".$this->pageNums."页 ";
       if($this->current_page > 1){
        $firstPageUrl=$this->subPage_link."1";
        $prewPageUrl=$this->subPage_link.($this->current_page-1);
        $subPageCss1Str.="[<a href='$firstPageUrl'>首页</a>] ";
        $subPageCss1Str.="[<a href='$prewPageUrl'>上一页</a>] ";
       }else {
        $subPageCss1Str.="[首页] ";
        $subPageCss1Str.="[上一页] ";
       }   if($this->current_page < $this->pageNums){
        $lastPageUrl=$this->subPage_link.$this->pageNums;
        $nextPageUrl=$this->subPage_link.($this->current_page+1);
        $subPageCss1Str.=" [<a href='$nextPageUrl'>下一页</a>] ";
        $subPageCss1Str.="[<a href='$lastPageUrl'>尾页</a>] ";
       }else {
        $subPageCss1Str.="[下一页] ";
        $subPageCss1Str.="[尾页] ";
       }   echo $subPageCss1Str;}
    /*
    构造经典模式的分页
    当前第1/453页 [首页] [上页] 1 2 3 4 5 6 7 8 9 10 [下页] [尾页]
    */
    function subPageCss2(){
       $subPageCss2Str="";
       $subPageCss2Str.="当前第".$this->current_page."/".$this->pageNums."页 ";
       if($this->current_page > 1){
        $firstPageUrl=$this->subPage_link."1";
        $prewPageUrl=$this->subPage_link.($this->current_page-1);
        $subPageCss2Str.="[<a href='$firstPageUrl'>首页</a>] ";
        $subPageCss2Str.="[<a href='$prewPageUrl'>上一页</a>] ";
       }else {
        $subPageCss2Str.="[首页] ";
        $subPageCss2Str.="[上一页] ";
       }   $a=$this->construct_num_Page();
       for($i=0;$i<count($a);$i++){
        $s=$a[$i];
        if($s == $this->current_page ){
         $subPageCss2Str.="[<span style='color:red;font-weight:bold;'>".$s."</span>]";
        }else{
         $url=$this->subPage_link.$s;
         $subPageCss2Str.="[<a href='$url'>".$s."</a>]";
        }
       }   if($this->current_page < $this->pageNums){
        $lastPageUrl=$this->subPage_link.$this->pageNums;
        $nextPageUrl=$this->subPage_link.($this->current_page+1);
        $subPageCss2Str.=" [<a href='$nextPageUrl'>下一页</a>] ";
        $subPageCss2Str.="[<a href='$lastPageUrl'>尾页</a>] ";
       }else {
        $subPageCss2Str.="[下一页] ";
        $subPageCss2Str.="[尾页] ";
       }
       echo $subPageCss2Str;
    }
    }
    ?>
      

  2.   

    你把这个改改你的库 能行 试过了<?php
    echo "<table border=1><tr>";
    while($field=mysql_fetch_field($result))
    {
    echo "<td><b><i>".$field->name."</i></b></td>";
    }
    echo "</tr>";while($row=mysql_fetch_row($result))
    {
    echo "<tr>";
    foreach($row as $v)
    echo "<td>$v</td>";
    echo "</tr>";
    }
    echo "</table>";
    echo "<form>";
    if($page>1)
    {
    ?>
    <a href="?page=1">首页</a>
    <a href="?page= <?php echo --$page;?>">上一页 </a>
    <?php
    }
    if($page<$totalpage)
    {
    ?>
    <a href="?page= <?php echo ++$page;?>">下一页 </a>
    <a href="?page=<?php echo $totalpage;?>">尾页</a>
    <?php
    }
    ?>
    转到:
    <input type=text name=page size="2">
    <?php
    echo "总记录:$p[recordnum]当前页$page/$totalpage&nbsp;</form>";
    ?>
      

  3.   

    我写得和你的代码基本一样啊,能实现页码跳转啊,我连接数据库的代码和你不一样,是
    $link=mysql_connect("$localhost","$root","$root")||die("无法连接数据库!");
    $db=mysql_select_db("test")||die("选择数据库失败!");
      

  4.   

    在你的第一段代码中,看到从地址中传过的变量page   楼主没有用$_GET['page']这样获得,当然如果配置文件中设置过,例外
      

  5.   

    同意楼上的问题...没获取page数值的话,一切都是没有哈
      

  6.   

    同意x1987xiaoxiao的,PHP.ini没有配置好
      

  7.   

    //改一下这里看看require_once 'conn.php';
    $page = $_GET['page'];
    if (isset($page)&&$page==""){
    $page=1;}//... 下面相同
      

  8.   


    //如果你url正确, 而分页功能正常, 那就是得不到$page变量值
      

  9.   


    <a href="?page= <?php echo --$page;?>">上一页 </a><a href="?page= <?php echo ++$page;?>">下一页 </a>
    这样写 好点
      

  10.   

     echo  "<a href=vote_edit_member.php?page=1>首页</a>&nbsp;";
    语法不对嘛:echo "<a href='vote_edit_member.php?page=1'>首页</a>&nbsp;";就可以了herf后面都要加引号的。都WEB2。0了,这些不能乱来了。
    在一个网页上不用$_GET这种超级变量的。
      

  11.   

    /*  显示“下一页”超链接  */
    echo "<a href=vote_edit_member.php?page=".($page+1).">下一页</a>&nbsp;";
    改成这样:
    $nextPage = $page + 1;echo "<a href=vote_edit_member.php?page=$nextPage>下一页</a>&nbsp;";
      

  12.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    <style type="text/css">
    <!--
    .STYLE2 {
    font-size: 36px;
    color: #00FF00;
    font-family: "新宋体";
    font-weight: bold;
    }
    -->
    </style>
    </head><body>
    <div align="center"><span class="STYLE2">分页显示技术</span>
      <form id="form1" name="form1" method="get" action="">
      </form>
      <table>
        <tr>
          <?php
    $link=mssql_connect('localhost',"sa","");//连接数据库
    if(!$link)
    {
    die("连接错误".mssql_srror());
    }
    if(!mssql_select_db("trade",$link))
    {
    die("连接数据库错误!");
    }
    $strsql="select * from t_goods";
    $result=mssql_query($strsql,$link);//执行SQL语句
    echo "<table border=1> <tr>";
    while($field=mssql_fetch_field($result))//循环提取表头赋给$field(提取一次只是提取一列)
    {
    echo "<td>".$field->name."</td>";
    }
    echo "</tr>";//每一页显示的记录数
    $pagesize=2;
    //总记录数
    $totalNum=mssql_num_rows($result);
    //页数
    $pagecount=(int)(($totalNum-1)/$pagesize)+1;
    //$pagecount=ceil($totalNum/$pagesize);//$absolutepage当前页
    if(empty($_GET[absolutepage]))
    {
    $absolutepage=1; 
    }  if($_GET[absolutepage]<=0)
    {
    $absolutepage=1; 
    }
    else 
    {
    $absolutepage=$_GET[absolutepage];
    }if($absolutepage>$pagecount) 
    {  
       $absolutepage=$pagecount; 
    }
    //开始分页
      
    if($pagecount>1&&$absolutepage>1)   
    {   
      $prevPage=$absolutepage-1;     

      
    if($absolutepage>=1&&$absolutepage<$pagecount)   
    {   
      $nextPage=$absolutepage+1;   
    }   if(mssql_data_seek($result,($absolutepage-1)*$pagesize))   
    {    
       for($i=0;$i<$pagesize;$i++)
    {   
    if (($rows=mssql_fetch_row($result))) 
    {
    echo "<tr>";
    foreach ($rows as $row)
    {
    echo "<td>$row</td>";
    }
    echo "</tr>";
    }
    }   
    }
    mssql_close($link);?>
        </tr>
        <tr>
          <td colspan="5"> 共<?php echo $totalNum ?>个人,第<?php echo $absolutepage ?>页/共<?php echo $pagecount ?>页:
            <?php
    if($pagecount>1&&$absolutepage>1)
    {
    echo " <a href='?absolutepage=1'>首页</a>   ";     
      echo "<a href='?absolutepage=$prevPage'>上一页</a> ";   
    }
    if($absolutepage<$pagecount)
    {
    echo   " <a href='?absolutepage=$nextPage'>下一页</a>   ";   
      echo   "<a href='?absolutepage=$pagecount'>末页</a>   ";    
    }?></td>
        </tr>
      </table>
      <table width="291" border="1" align="center" cellpadding="2" cellspacing="2">
        <tr>
          <td width="279">请输入要查询的人名:
            <label>
            <input name="textfield" type="text" size="10" maxlength="10" />
          </label></td>
        </tr>
        <tr>
          <td><label></label>        <form id="form2" name="form2" method="post" action="">
              <label></label>
              <div align="center">
                <input type="submit" name="Submit" value="提交数据" />
              </div>
          </form></td>
        </tr>
      </table>
      </form>
      <p>&nbsp;</p>
    </div>
    </body>
    </html>
      

  13.   

    缺少获得page的get方法
    $page=$_GET['page'];
      

  14.   

    page的值需要用$_GET['page']来获取/。。