s="<table width='100%' border='1'>"
for(i=0;i<4;i++)
{
  s=s."<tr>";
  for(j=0;j<5;j++)
  {
     s=s."<td>";
     s=s.$record(5*i+j);   //以行为主,第一行显示1,2,3,4,5号记录
   //或s=s.$record(4*j+i);  //以列为主,第一列显示1.2,3,4号记录
     s=s."</td>";
  }
  s=s."</tr>";
}
s=s."</table>";

解决方案 »

  1.   

    <?
    class cutpages
    {
    //-------------------------------------------------------------
      function set_rs($name)    //属性rs为需要输出并分页的数据
      {
        $this->rs=$name;
      }
    //-------------------------------------------------------------
      function set_nowpages($name)   //当前页码
      {
        $this->nowpages=intval($name);
    //    echo "nowpages_set=".$this->nowpages."<br>";
      }
    //-------------------------------------------------------------
      function set_pagesize($name)     //每页显示记录树
      {
        $this->pagesize=$name;
      }
    //-------------------------------------------------------------
      function output()                 //开始输出
      {
        $maxnum=intval(mysql_num_rows($this->rs));
        //echo "pagesize=".$this->pagesize."<br>";
        $maxpage=ceil($maxnum/$this->pagesize);
        //echo "maxpage=".$maxpage."<br>";
        if ($this->nowpages > $maxpage)
        {
          $this->nowpages = $maxpage;
        }
        if( ( $this->nowpages < 1) || ( $this->nowpages == "" ) )
        {
          $this->nowpages = 1;
        }
        //echo "seted_now=".$this->nowpages."<br>";
        for ($i=$this->pagesize*($this->nowpages-1);($i<$this->pagesize*$this->nowpages)&&($i<=$maxnum);$i++)
        {
          echo $this->date[$i];
        }
        $this->nextpage=$this->nowpages+1;
      }
    //-----------------------------------------------------------
      function out_html_add($in)                    //格式化输出的html
      {
        $maxnum=intval(mysql_num_rows($this->rs));
        for ($j=0;$j<$maxnum;$j++)
        {
        $this->date[$j]=$this->date[$j].$in;
    //    echo "date".$j."=".$this->date[$j]."<br>";
        }
      }
    //-----------------------------------------------------------
      function out_val_add($in)             //格式话输出的变量!
      {
        $maxnum=intval(mysql_num_rows($this->rs));
        for ($j=0;$j<$maxnum;$j++)
        {
        $this->date[$j]=$this->date[$j].mysql_result($this->rs,$j,$in);
    //    echo "date".$j."=".$this->date[$j]."<br>";
        }
      }
    }
    ?>
      

  2.   

    提供你一个思想吧!总共需要查询数据库两编
    1。查询数据库获得所有查询结果数,保存在一个变量中,对其进行分页处理,获得页数
    2。根据总页数输出页码连结 比如  1 2 3 4 5 等等
    3。从页码连结获得当前页码数,根据该页码数从数据库中进行查询,使用limit子句
    4。将查询结果显示很简单吧!
      

  3.   

    jane11(jane11):
    如果记录不是20的倍数,那到最后就会出错了。比如显示图片的时候,那最后没有的记录就会显示一个x,我就遇到过这样的问题。
    所以还必须事先判断最后剩余的记录还有几条,另写代码。
    也没有高手可以解决这个问题?
      

  4.   

    原理:利用SQL语句中的limit关键字<?
    /*
    作者: 何志强[[email protected] [email protected]]
    主页: http://www.phpchina.com/
    ICQ : 50721529
    版本: 1.0未经本人同意,不得以任何方式转载*/$pagesize = 2; //每页显示的记录数$pageno = (int)$pageno;
    if($pageno<1) $pageno = 1;$start_rowno = ($pageno-1)*$pagesize;$con = mysql_connect('localhost','test','') or die('无法连接服务器');$sql = 'select * from page_test LIMIT '.$start_rowno.','.($pagesize+1); //$pagesize加1的目的是用来判断是否有下一页
    $rst = mysql_db_query('test',$sql,$con) or die($sql.'语句出错');$num_rows = mysql_num_rows($rst);
    if($num_rows>$pagesize){
      $num_rows = $pagesize;
      echo '<a href="'.$PHP_SELF.'?pageno='.($pageno+1).'">下一页</a>&nbsp;&nbsp;';
    }
    if($pageno>1) echo '<a href="'.$PHP_SELF.'?pageno='.($pageno-1).'">上一页</a>&nbsp;&nbsp;';echo '<table border="1" cellspacing="0" cellpadding="0">';
    echo '<tr>';
    $num_fields = mysql_num_fields($rst);
    for($i=0;$i<$num_fields;$i++) echo '<th>'.mysql_field_name($rst,$i).'</th>';
    for($i=0;$i<$num_rows;$i++){
      $row=mysql_fetch_row($rst);
      echo '<tr>';
      for($j=0;$j<$num_fields;$j++) echo '<td>&nbsp;'.$row[$j].'</td>';
      echo '</tr>';
    }
    echo '</tr>';
    echo '</table>';mysql_free_result($rst);mysql_close($con);
    ?> 
      

  5.   

    select * from you_table limit $offset,pagesize;