分页就是sql语句中limit就可以了,没有什么特别的

解决方案 »

  1.   

    是LIMIT,但是从第一页到第二页的时候就显示不正确了
    带搜索的分页跟普通分页不一样吧
      

  2.   

    query的时候把条件带上就行了, 包括当前页号.
      

  3.   

    在分页的链接上把查询条件都传过去。其实分页就是个sql中的limit,因此只要带着查询条件,就可以实现了。
      

  4.   

    在分析页面里$_GET['你的条件'].
    SQL语句里limit 然后order by
      

  5.   

    用地址栏传值 关键字什么的$_GET
      

  6.   

    以下是findmessage.html:
    ---------------------------------------------------------------------------
    <form id="form1" name="form1" method="post" action="showmessage.php">
      请输入您想查询的关键字:
      <label>
      <input name="find" type="text" id="find" size="30" maxlength="30" />
      </label>
      <label>
      <input type="submit" name="Submit" value="提交" />
      </label>
      <input name="findmessage" type="hidden" id="findmessage" value="true" />
    </form>
    -------------------------------------------------------------------
    以下是showmessage.php
    -------------------------------------------------------------------
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>留言信息总汇</title>
    <style type="text/css">
    <!--
    body,td,th {
    font-size: 14px;
    }
    .STYLE1 {
    font-size: 16px;
    color: #666666;
    }
    -->
    </style>
    </head>
    <body leftMargin=0 topMargin=0 rightmargin=0 >
    <p><?php
    $find=($_POST['find']);
    //echo $find;
    if($findmessage=="true")
    $db=mysql_connect("localhost","root","123");
    mysql_select_db("test",$db);
    //设定每一页显示的记录数
    $pagesize=5;
    //取得记录总数

    $res=mysql_query("select count(id) from message where uname='$find' " ,$db);
    //$res=mysql_query("select count(id) from message " ,$db);
    $myrow = mysql_fetch_array($res);
    @mysql_query("set names gb2312 ");
    $numrows=$myrow[0];
    //计算总页数
    $pages=intval($numrows/$pagesize);
    if ($numrows%$pagesize)
    $pages++;
    //判断页数设置与否,如无则定义为首页
    if (!isset($page))
    $page=1;
    //判断转到页数
    if (isset($ys))
    if ($ys>$pages)
    $page=$pages;
    else
    $page=$ys;
    //计算记录偏移量
    $offset=$pagesize*($page-1);?>
    </p>
    <p>&nbsp;</p>
    <table width="90%" border="1" align="center" cellpadding="0" cellspacing="0">
      <tr>
        <td width="10%" height="24" bgcolor="#ec9307"><div align="center">序号</div></td>
        <td width="20%" bgcolor="#ec9307"><div align="center">留言用户</div></td>
        <td width="20%" bgcolor="#ec9307"><div align="center">留言时间</div></td>
        <td width="30%" bgcolor="#ec9307"><div align="center">留言内容</div></td>
        <td bgcolor="#ec9307"><div align="center">回复</div></td>
      </tr>
      <?php
      //取记录
    $res=mysql_query("select * from message where uname='$find' order by time limit $offset,$pagesize" ,$db);
    //$res=mysql_query("select * from message order by time limit $offset,$pagesize" ,$db);
    @mysql_query("set names gb2312 ");
    //循环显示记录
    if ($myrow = mysql_fetch_array($res))
    {
    $i=0;
    do 
    {
    $i++;
    ?>
      <tr>
        <td width="10%"><div align="center"><?php echo $myrow['id'];?></div></td>
        <td><div align="center"><font size="2"> <?php echo $myrow['uname'];?></font></div></td>
        <td><div align="center"><font size="2"><?php echo $myrow['time'];?></font></div></td>
        <td><div align="center"><font size="2"><?php echo $myrow['qtext'];?></font></div></td>
        <td><div align="center"><font size="2"><?php echo $myrow['atext'];?></font></div></td>
      </tr>
      
      <?php
    }
    while ($myrow = mysql_fetch_array($res));
    echo "</table>" ;
    }
    //显示总页数
    echo "<div align='center'>共有".$pages."页(".$page."/".$pages.")<br>";
    //显示分页数
    for ($i=1;$i<$page;$i++)
    echo "<a href='$PHP_SELF?page=".$i."'>第".$i ."页</a>  ";
    echo "第".$page."页  ";
    for ($i=$page+1;$i<=$pages;$i++)
    echo "<a href='$PHP_SELF?page=".$i."'>第".$i ."页</a>  ";
    echo "<br>";
    //显示转到页数
    echo "<form action='$PHP_SELF' method='post'> ";
    //计算首页、上一页、下一页、尾页的页数值
    $first=1;
    $prev=$page-1;
    $next=$page+1;
    $last=$pages;
    if ($page>1)
    {
    echo "<a href='$PHP_SELF?page=".$first."'>首页</a>  ";
    echo "<a href='$PHP_SELF?page=".$prev."'>上一页</a>  ";
    }
    if ($page<$pages)
    {
    echo "<a href='$PHP_SELF?page=".$next."'>下一页</a>  ";
    echo "<a href='$PHP_SELF?page=".$last."'>尾页</a>  ";
    }
    echo "转到<input type=text name='ys' size='2' maxlength='2' value=".$page.">页";
    echo "<input type=submit name='Submit' value='Go'>";
    echo "</form>";
    echo "</div>";
    ?>
    </table><p>&nbsp;</p>
    </body>
    </html>
    -------------------------------------------------------------
    运行起来就是不正确。
    请帮忙
      

  7.   

    try:
    1.$find=$_REQUEST['find'];2.if ($page>1)
    {
    echo "<a href='$PHP_SELF?page=".$first."&find={$find}'>首页</a> ";
    echo "<a href='$PHP_SELF?page=".$prev."&find={$find}'>上一页</a> ";
    }
    if ($page<$pages)
    {
    echo "<a href='$PHP_SELF?page=".$next."&find={$find}'>下一页</a> ";
    echo "<a href='$PHP_SELF?page=".$last."&find={$find}'>尾页</a> ";
    }
      

  8.   

    如果有非常多的条件就麻烦啦...SQL存在SESSION就行了
      

  9.   

    foreach($_GET as $k=>$v){
            $page_add .= '&'.$k.'='.$v;
            $sql_add .= ' AND '.$k.'=\''.$v.'\'';
    }
    翻页的程序要在URL后加上$page_add
    查数据库的程序要在SQL后加上$sql_add
      

  10.   

    感谢大家的帮助,问题已经解决。下面把代码贴出来,希望对有同样问题的朋友有帮助:
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>留言信息总汇</title>
    <style type="text/css">
    <!--
    body,td,th {
    font-size: 14px;
    }
    .STYLE1 {
    font-size: 16px;
    color: #666666;
    }
    -->
    </style>
    </head>
    <body leftMargin=0 topMargin=0 rightmargin=0 >
    <p>
    <?php
    #############################################
    ##########           开始
    ############################################# if($_POST['find']=="")
    $find=($_GET['find']);
    if($_GET['find']=="")
    $find=$_POST['find'];

    #############################################
    ##########           连接数据库
    #############################################

    $db=mysql_connect("localhost","root","123");
    mysql_select_db("test",$db);
    if($findmessage=="1")
    //设定每一页显示的记录数
    $pagesize=5;
    //取得记录总数
    $res=mysql_query("select count(id) from message where uname='$find' " ,$db);
    $myrow = mysql_fetch_array($res);

    $res2=mysql_query("select id from message where uname='$find' " ,$db);
    $totos = mysql_num_rows($res2);
    if($totos=="0")
    {
    echo "<br><br><br><br><div align='center'>对不起,没有找到相关资料!</div>";
    exit;
    }
    @mysql_query("set names gb2312 ");
    $numrows=$myrow[0];
    //计算总页数
    $pages=intval($numrows/$pagesize);
    if ($numrows%$pagesize)
    $pages++;
    //判断页数设置与否,如无则定义为首页
    if (!isset($page))
    $page=1;
    if ($_GET[page]>$pages)
    $page=$pages;
    if ($_GET[page]<0)
    $page=1;
    //计算记录偏移量
    $offset=$pagesize*($page-1);echo<<<EOT
    </p>
    <p>&nbsp;</p>
    <table width="90%" border="1" align="center" cellpadding="0" cellspacing="0">
      <tr>
        <td width="15%" height="24" bgcolor="#ec9307"><div align="center">留言序号</div></td>
        <td width="20%" bgcolor="#ec9307"><div align="center">留言用户</div></td>
        <td width="20%" bgcolor="#ec9307"><div align="center">留言时间</div></td>
        <td width="25%" bgcolor="#ec9307"><div align="center">留言内容</div></td>
        <td bgcolor="#ec9307"><div align="center">留言回复</div></td>
      </tr>
    EOT;  //取记录
    $res=mysql_query("select * from message where uname='$find' order by time limit $offset,$pagesize" ,$db);
    $toto = mysql_num_rows($res);
    @mysql_query("set names gb2312 ");
    //循环显示记录
    if ($myrow = mysql_fetch_array($res))
    {
    $i=0;
    do
    {
    $i++;
    #############################################
    ##########           输出
    #############################################
    ?>
    <tr>
        <td width="10%"><div align="center"><?php echo $myrow['id'];?></div></td>
        <td><div align="center"><?php echo $myrow['uname'];?></div></td>
        <td><div align="center"><?php echo $myrow['time'];?></div></td>
        <td><div align="center"><?php echo $myrow['qtext'];?></div></td>
        <td><div align="center"><?php echo $myrow['atext'];?></div></td>
    </tr>
    <p>
      <?php
    }
    while ($myrow = mysql_fetch_array($res));
    echo "</table>" ;
    }
    //显示总页数
    echo "<br><div align='center'>(本页:".$toto."条信息/共".$totos."条信息) , 共有".$pages."页(".$page."/".$pages.")<br>";
    //显示分页数
    for ($i=1;$i<$page;$i++)
    echo "<a href='$PHP_SELF?page=".$i."&find=$find&findmessage=1'>第".$i ."页</a>  ";
    echo "第".$page."页  ";
    for ($i=$page+1;$i<=$pages;$i++)
    echo "<a href='$PHP_SELF?page=".$i."&find=$find&findmessage=1'>第".$i ."页</a>  ";
    echo "<br>";
    //显示转到页数
    echo "<form action='$PHP_SELF' method='post'> ";
    //计算首页、上一页、下一页、尾页的页数值
    $first=1;
    $prev=$page-1;
    $next=$page+1;
    $last=$pages;

    if ($page>1)
    {
    echo "<a href='$PHP_SELF?page=".$first."&find=$find&findmessage=1'>首页</a> ";
    echo "<a href='$PHP_SELF?page=".$prev."&find=$find&findmessage=1'>上一页</a> ";
    }
    if ($page<$pages)
    {
    echo "<a href='$PHP_SELF?page=".$next."&find=$find&findmessage=1'>下一页</a> ";
    echo "<a href='$PHP_SELF?page=".$last."&find=$find&findmessage=1'>尾页</a> ";
    }
    echo "</form>";
    echo "</div>";
    ?>
    </p>
    <p>&nbsp;</p>
    </body>
    </html>