【问题标题】:Don't show pagination if only one page is returned (Php)如果只返回一页,则不显示分页(Php)
【发布时间】:2014-07-20 09:58:25
【问题描述】:

我有一个简单且有效的 php 分页。如果只返回一页,则分页仍会显示第一页的链接。当只返回一页时,如何隐藏或删除这个无用的链接?任何帮助都非常感谢......

我的代码是这样的:

<?php
include 'config.php';
include 'opendb.php';
?>

<?php
    $row=$conn;
    mysql_select_db('DB_NAME',$row);

    $start=0;
    $limit=12;

    if(isset($_GET['id']))
    {
        $id=$_GET['id'];
        $start=($id-1)*$limit;
    }

    $query=mysql_query("SELECT * FROM `table` LIMIT $start, $limit");
    while($row=mysql_fetch_array($query))

    {

?>

    <!-- RESULT FROM DB -->

<?  }  ?>


<?php                   
    $rows=$conn;
    mysql_select_db('DB_NAME',$rows);

    $rows=mysql_num_rows(mysql_query("SELECT * FROM `table`"));
    $total=ceil($rows/$limit);

    for($i=1;$i<=$total;$i++)
    {
    if($i==$id) {
?>

        <li class='active'><a href='#'><?php echo "$i"; ?></a></li>

<?php } else { ?>

        <li><a href='<?php echo "?id=$i"; ?>'><?php echo "$i"; ?></a></li> 

<?php }

      }
?>

【问题讨论】:

  • 你不能在for 循环之前添加一个if 语句来检查$total &gt; 1 是否存在吗?
  • 感谢 Cactus - 你说得对

标签: php pagination


【解决方案1】:
//check if the qty is greater than one before running the for loop.
if( $total > 1 )
{
   for($i=1;$i<=$total;$i++)
   {
     if($i==$id) 
     {
        echo "<li class='active'><a href='#'>$i</a></li>";
     } 
     else 
     {
        echo "<li><a href='?id=$i'>$i</a></li>";
     }
   }
}

在运行循环之前检查数量。

您的 sql 语法也已过时:http://php.net/manual/en/function.mysql-query.php

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2017-02-19
  • 1970-01-01
  • 1970-01-01
  • 2015-04-24
  • 1970-01-01
  • 2011-04-24
  • 2017-08-31
  • 1970-01-01
相关资源
最近更新 更多