PHP分页问题,​​给出空白页面

时间:2010-08-13 05:28:38

标签: php sql pagination

以下是我的分页代码。我遇到的问题是页面计数显示正确,但是当我点击第2页后,我只得到一个空白页面。

        <?php   
if (isset($_POST['edit'])) {
            if (empty($_GET['page'])) {
                $page=0;
            }
            else {$page = (int)$_GET['page'];}


         if ($page == 0){ $page = 1;}

          if (ob_get_level() == 0) ob_start();


       $per_page = 10;
        $p = ($page - 1) * $per_page;


        $sql="select * from tba where word='$word' order by id DESC limit ".$p.",".$per_page;
        $result=mysql_query($sql) or die(mysql_error());



        while ($row=mysql_fetch_array($result)) {
            $id=$row['id'];
            $word=$row['word'];
            $pr=$row['pr'];


            if ($pr==0) {


            }
    else {
      ?>
        <td><span class="style5"><?php echo $id; ?> </span></td>
        <td><span class="style5"><?php echo $word?></span></td>
    <?php

            }
                    $pages = floor($total / $per_page) + ($total%$per_page>0?1:0);
    ?>
    <center>
    <?php
        }
    for ($i=1;$i<=$pages;$i++) {
      print "<a href='?page=".$i."'>".$i."</a> ";

    }

     echo "<br>You are in page ".$_GET['page']; 
} 

有人可以告诉我问题是什么吗?

4 个答案:

答案 0 :(得分:1)

是时候学习调试了。

事实上,我们只能猜测出了什么问题 虽然只有程序员自己才能肯定地告诉它。这是他们的工作和职责 找出问题的艺术称为调试。

为此,您必须检查每个操作结果 例如,您的查询是否返回任何结果?
如果没有 - 为什么?那个$ word变量来自哪里?但在第二页?

您必须将所有必需的数据传递给其他页面以及$ page变量。

答案 1 :(得分:0)

看起来$ pages = floor ...行在while循环中,这是第一个问题。此外,永远不会设置$ total。

答案 2 :(得分:0)

永远不会设置变量$total,使总页数不正确

您需要首先使用类似于以下内容的查询来获取行总数:

$sql="SELECT COUNT(id) AS rows FROM tba where word='$word'";

而不是做“楼层”操作并在“其他页面”添加“1”时可以使用“ceil”

而不是:

$pages = floor($total / $per_page) + ($total%$per_page>0?1:0);

您可以使用:

$pages = ceil($total / $per_page);

答案 3 :(得分:0)

好吧,整个输出都在if语句中,你没有发布POST参数($_POST['edit']