分页功能主要是通过对数据集的操作实现的:
1. 自己写一个循环,按照分页格式化输出,(慢,但是通用)
2. 有些驱动程序,比如ADO支持数据集分页
3. 大型数据库的SQL支持TOP语句,你可以用select top n ... where id>myid 这样的语句
   来获得分页。

解决方案 »

  1.   

    从我的代码取下来的,只有分页功能,可参考<?php
    #bugs report email to [email protected]
    $numbers=10;
    $start=$page*$numbers;
    $next_page=$page+1;
    $pro_page=$page-1;
    print "<table class=main><tr><td width=40>";
    if($page>0)
    {print "<a href=\"$PHP_SELF?id=$id&page=$pro_page\" class=main>上一页</a> ";}
    else
    {print "<font color=#999999>上一页</font>";}print "</td>\n";
    print "<td width=40>\n";if($next_page*$numbers<$total)
    {print "<a href=\"$PHP_SELF?id=$id&page=$next_page\" class=main>下一页</a> ";}
    else
    {print "<font color=#999999>下一页</font>";}print "</td>\n";
    print "<td>";
    for ($i=0;$i<($total/$numbers);$i++) 
    {
    $page_name=$i+1;
    if($page_name!=$page+1)
    {print "<a href=\"$PHP_SELF?id=$id&page=$i\" class=main>($page_name)</a> ";
    }else
    {print "<font color=#ff0000><b>($page_name)</b></font> ";}
    }
    print "</td></tr></table>";
      

  2.   

    print "<table><tr bgcolor=#cccccc align=center><td>姓名</td><td>时间</td><td width=120> 地点</td><td>图片</td></tr>";
    if($Submit)
    {
    $query="select * from photo_table where site='$id_cookie' and datetime>'$query_date' order by datetime limit $start,$numbers";
    }else
    {
    $query="select * from photo_table where site='$id_cookie' order by datetime DESC limit $start,$numbers";
    }
    //$result=mysql_query($query);$query="select * from site_table where lochus='$id_cookie'";
    $result=mysql_query($query);
    //print  $query;
    while($lochus=mysql_fetch_object($result))
    {
     $current_sitename=$lochus->name;
     $current_siteid=$lochus->id;
     $query="select * from photo_table where site='$current_siteid' order by datetime DESC limit $start,$numbers";
     $result=mysql_query($query);
     //print  $query;
     while($rows=mysql_fetch_object($result))
    {
    $current_pos++;
    $current_record_id=$rows->id;
    $card=$rows->card;
    $query="select id,name from person_table where card='$card'";
    $person_info=mysql_query($query);
    $person=@mysql_result($person_info,0,'name');
    $person_id=@mysql_result($person_info,0,'id');
    $person="<a href=show_person_info.php?id=$person_id class=main1>$person</a>";
    $picture=$rows->name;
    $datetime=$rows->datetime;
    $img="<a href=\"show_detail.php?id=$current_record_id\"><img src=\"mphoto/$picture\" height=40 width=60></a>";
    $site_id=$rows->site;
    $query="select name from site_table where id='$site_id'";
    $site_info=mysql_query($query);
    $site=@mysql_result($site_info,0,'name');
    if ($current_pos%2) 
    {$bgcolor="#dddddd";
    }else
    {$bgcolor="#eeeeee";
    }
    print "<tr bgcolor=$bgcolor><td>$person</td><td>$datetime</td><td align=center>$site</td><td><font color=#0000ff>$img</font></td></tr>";
    } }
    print "</table>";/*算了,全给你吧*/
      

  3.   

    你用的是mysql吗,有些数据库没有此功能(如oracle,要实现分页较mysql麻烦)limit $offset,10:限定select结果为第$offset条开始的10条记录
      

  4.   

    我Kao!你们用的太麻烦了,jsp,asp,php的通用分页方法就是用session.
    asp可以用ado的分页.
    php可以用sql的limit限制.
    jsp只能用session.
      

  5.   

    总的来说,要分页显示主要就是能够记住你当前页已经显示到第几行了,能过把数据库的纪录定位,这样你再犯页时就可以知道从那一条记录开始显示,所以可以用的方法有很多种,例如是用数租了,使用session了,使用mysql_db_seek()函数等方法,不一而足。