先看看手册$page = $_GET['page'];
     if($page < 1) $page = 1;
当传入的页号小于1时,将页号设为1
避免出错

解决方案 »

  1.   

    我想你要一步一步的来.
    首先你实现读取数据,逐条显示,再加入分页程序.
    事情总是有先后的,慢慢来吧.
    $PAGE是自定义变量,$_GET['page']是从地址栏传递过来的URL变量,即:abc.php?page=2中的page,$_GET是一个数组,里面的值就是URL变量,你可以随便做一个页面试一试,如下:abc.php
    ===========
    <?php
    print_r($_GET);//print_r()函数不知道就查手册
    ?>在地址栏里输入abc.php?a=1&b=2&c=3&page=5
    看看会输出什么?
      

  2.   

    大体上意思就是你先确定所有数据的总数!!然后确定每一页输出几条数据!然后分页的时候再确定一共需要几页!!在输出数据的时候:
     $page++;
     $s=($page-1)*20;
    select * from 表 order by id desc limit $s,20;
    意思就是在本页第二次输出的时候从第21条开始!!
    就是这样!!
      

  3.   

    分页的思路基本上都是一样的
    $onelist="15";//每页显示数量
    //获取GET
    if(isset($_GET['cp'])){
    $cp=$_GET['cp'];
    $limit=($_GET['cp']-1)*$onelist;
    }
    else{
    $cp="1";
    $limit="0";//查询开始记录数
    $query="select * from table limit $limit,".$onelist;然后算出下一页(上一页,最后页)的page值是多少基本上都是这样了
    自己试着写一下就明白了
      

  4.   

    楼主给你个类,呵呵http://www.phpe.net/class/104.shtml
    不知道能不能看懂。那个page,是url穿过来的,_get的作用就是得到它。
      

  5.   

    现在 有一点点进步了 
    我的 代码是这样的 :
    <?
         $page = $_GET['p'];
         if($page < 1) $page = 1;
    echo $page;
    echo "<a href=?p=";?><? echo $page+1;?><? echo ">下一页</a>";
    echo "<a href=?p=";?><? echo $page-1;?><? echo ">上一页</a>";
    echo $p;
    ?>
    在地址栏中输入:文件名.php或 文件名.php?p=3 就可以了 但echo "<a href=?p='.($page+1).'>下一页</a>";会出错,错在哪里?
    班门弄斧,多多指教!
      

  6.   

    echo "<a href=?p=";?><? echo $page+1;?><? echo ">下一页</a>";
    echo "<a href=?p=";?><? echo $page-1;?><? echo ">上一页</a>";写的有够乱的....不能弄成一行吗?....晕..你自己看着也不方便呀.下一页出错,可能是你的href里的地址出错了,查一下看看.
      

  7.   

    这个是比较简单的,可以好好看看了
    <html><head><title>PHP分页</title></head><body><?
    $gPageSize= 50; //每页显示的记录数$hostname = "localhost"; //mysql Server$dbuser = "root"; //用户名$dbpasswd = ""; //密码//连接数据库$id = mysql_connect($hostname,$dbuser,$dbpasswd) or die("无法连接数据库服务器!");//选择数据库$db = mysql_select_db("数据库名",$id) or die("无法连接数据库!");$query = "select * from 表名";//执行查询语句$rresult = mysql_query($query) or die("无法执行SQL:$query");//$page变量标示当前显示的页if(!isset($page)) $page=1;if($page==0) $page=1;//得到当前查询到的纪录数 $nNumRowsif(($nNumRows= mysql_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 < mysql_num_fields($rresult); $iCnt++){echo "<td>".mysql_field_name($rresult,$iCnt)."</td>" ;}?></tr><?//根据偏移量($page - 1)*$gPageSize,运用mysql_data_seek函数得到要显示的页面if( mysql_data_seek($rresult,($page-1)*$gPageSize) ){$i=0;//循环显示当前纪录集for($i;$i<$gPageSize;$i++){echo "<tr style=\"font-size:12px\">";//得到当前纪录,填充到数组$arr;$arr= mysql_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>