在本例中,我们用mssql_num_rows()函数得到当前查询的记录数,结合页面大小SgPageSize,得到当前记录集要显示的页面数,为分页显示打下了基础。mssql_data_seek()函数是分页显示的关键函数,该函数的第二个参数标示当前纪录的偏移量,根据这个偏移量就可以找到要显示的页面。
  分页显示源程序:
<br><html><head><title>PHP分页</title></head><body><?//为了便于理解和更快地应用到工作中去,我们以MS SQL Server的NorthWind数据库Customers表为例。$gPageSize= 10; //每页显示的记录数$hostname = "localhost"; //MSSQL Server$dbuser = "sa"; //用户名$dbpasswd = "1111111"; //密码//连接数据库$id = mssql_connect($hostname,$dbuser,$dbpasswd) or die("无法连接数据库服务器!");//选择数据库,为了方便,这里以MSSQL Server的NorthWind数据库为例$db = mssql_select_db("northwind",$id) or die("无法连接数据库!");//以Customers表为例,构建查询字符串$query = "select * from Customers";//执行查询语句$rresult = mssql_query($query) or die("无法执行SQL:$query");//$page变量标示当前显示的页if(!isset($page)) $page=1;if($page==0) $page=1;//得到当前查询到的纪录数 $nNumRowsif(($nNumRows= mssql_num_rows($rresult))<=0){echo "<p align=center>没有纪录";exit;};//得到最大页码数MaxPage$MaxPage = (int)ceil($nNumRows/$gPageSize);if((int)$page > $MaxPage)$page=$maxPage;?><table align="center" width="80%" border=0> <tr><td><? echo "<font size=2>第 
$page 页,共 $MaxPage 页</font>";?></td><td></td></tr></table><table align="center" width="80%" border="1" cellspacing="0" cellpadding="4" bordercolorlight="#CC9966" bgcolor="#00F2EE" bordercolordark="#FFFFFF" class="LZH"><tr bgcolor="#F7F2ff" style="font-size:14.8px;font-weight:bold"><?//显示表格头for($iCnt = 0; $iCnt < mssql_num_fields($rresult); $iCnt++){echo "<td>".mssql_field_name($rresult,$iCnt)."</td>" ;}?></tr><?//根据偏移量($page - 1)*$gPageSize,运用mssql_data_seek函数得到要显示的页面if( mssql_data_seek($rresult,($page-1)*$gPageSize) ){ $i=0;//循环显示当前纪录集for($i;$i<$gPageSize;$i++){echo "<tr style=\"font-size:12px\">";//得到当前纪录,填充到数组$arr;$arr= mssql_fetch_row($rresult);if($arr){//循环显示当前纪录的所有字段值for($nOffSet = 0;$nOffSet < count($arr);$nOffSet++){echo "<td>".$arr[$nOffSet]."</td>";}}echo "</tr>";}}?></table><br><hr size=1 width=80%><div align=center style="font-size:12px"><?//首页和上一页的链接if( $nNumRows>1 && $page>1){$prevPage=$page-1; echo " <a href=$PHP_SELF?page=1>首页</a> "; echo " <a href=$PHP_SELF?page=$prevPage >上一页</a> ";}//下一页和末页的链接if( $page>=1 && $page<$MaxPage){$nextPage= $page+1;echo " <a href=$PHP_SELF?page=$nextPage >下一页</a> ";echo " <a href=$PHP_SELF?page=$MaxPage >末页</a> "; }?></div></body></html>
把里面的mssql改为mysql就可以了

解决方案 »

  1.   

    给段简单一点的吧,我没试过,可能会有错^_^
    $offset=0;
    $query="select * from table order by id limit 20";
    $result=mysql_query($query) or die(mysql_error());
    @mysql_data_seek($result,$offset);
    while($row=mysql_fetch_array($result))
    {
      // 显示100-80行
    }
    $offset=20;
    @mysql_data_seek($result,$offset);
    while($row=mysql_fetch_array($result))
    {
      // 显示80-60行
    }