$offset这个变量你输出一下看看有没能值.如果没有的话你他当然就不会到下一页.再有你用的是什么老版本吗?如果是我没能问题了.如果不是那你上面的程序一下不会向下一页跳.我想你那么多角不会是这个问题.一定是参数传的不对.

解决方案 »

  1.   

    在get_namecard()这个函数中加上:
    global $offset;先看看
      

  2.   

    global $offset;
    或者
    $_GET[offset];
    或者
    $GLOBALS[offset];
      

  3.   

    $offset应该作为全局变量来声明吧!因为你是使用在函数里面呀!
    我看你还是不要使用函数了!我见到函数就头大!
      

  4.   

    问题又出来了,把$offset设成全局后,点第2页,没有数据,点第1页把剩下的数据显示出来了,这又是什么问题呢?
      

  5.   

    这里错了,改为
    for ($i=1; $i <= $pages; $i++)
    {
      $newoffset=8*($i-1);
      print "<a href=\"$PHP_SELF?offset=$newoffset\">$i</a> \n";
    }
      

  6.   

    先测试一下吧:
    function get_namecard()
    {
      global $loginname; //用户登录名
      global $offset;
      connect_db(); //连接数据库
      $sql = "select cardid,company,name from namecard";//where owner='$loginname' order by cardid desc";
      $result = mysql_query($sql) or die(mysql_error());
      $num = mysql_num_rows($result) or die(mysql_error());
      if($num !=0)
      {
        if(empty($offset)||$offset<0)
        {
          $offset = 0;
        }
        $sql2 = "select cardid,company,name from namecard  LIMIT $offset,8";
        $result2 = mysql_query($sql2);// or die(mysql_error());   /* for($i=0;$i<$num;$i++)
        {
          $row = mysql_fetch_array($result2);
          show_card($row);
        }*/
        while ($row = mysql_fetch_array($result2))
        {
          show_card($row);
        }
        echo "<tr bgcolor=#ffffff><td align=center colspan=5>";
        if(!$offset) //如果$offset=0不显示前一页
        {
          $preoffset = $offset-8;
          echo "<a href=\"$PHP_SELF?offset=$preoffset\">前一页</a> \n";
        }
        $pages = ceil($num/8);
        for ($i=1; $i <= $pages; $i++)
        {
          $newoffset=8*($i-1);
          print "<a href=\"$PHP_SELF?offset=$newoffset\">$i</a> \n";    }
        if ($pages!=0 && ($offset/8+1)<$pages)
        {
          print "<a href=\"$PHP_SELF?offset=".($offset+8)."\">下一页</a> \n";
        }
        echo "</td></tr></table>";  }
    }