【问题标题】:PHP pagination problem, gives blank pagePHP分页问题,​​给出空白页
【发布时间】:2010-08-13 15:12:30
【问题描述】:

下面是我的分页代码。我遇到的问题是页数显示正确,但是当我从第 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']; 
} 

谁能告诉我问题出在哪里?

【问题讨论】:

  • 是时候学习调试了。

标签: php sql pagination


【解决方案1】:

是时候学习调试了。

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

为此,您必须检查每个操作结果。
例如,您的查询是否返回任何结果?
如果不是 - 为什么? $word 变量从何而来?但是在第二页呢?

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

【讨论】:

  • 她的他的职责......如果我们要考虑每个可能的细节;)
  • 我做了调试问题是因为代码带有提交按钮。 :D 现在修好了。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    变量$total 从未设置,导致总页数不正确

    您需要先获取总行数,查询类似于:

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

    当有“其他页面”时,您可以使用“ceil”,而不是进行“地板”操作并添加“1”

    代替:

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

    你可以使用:

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

    【讨论】:

      【解决方案4】:

      嗯,整个输出都在 if 语句中,而您没有发布 POST 参数 ($_POST['edit'])

      【讨论】:

        猜你喜欢
        • 2010-10-02
        • 1970-01-01
        • 1970-01-01
        • 2015-12-18
        • 1970-01-01
        • 2011-10-20
        • 2022-01-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多