PHP分页 - 无法检测页面

时间:2011-12-24 16:14:13

标签: php mysql pagination

我想制作一个基本上做三件事的简约分页脚本:

  1. 在第一页上,只是下一个按钮。
  2. 在最后一页,只是前一个按钮。
  3. 两者之间的所有其他人。
  4. 我已经完成了大部分代码,但我只是制作了一些if / elseif语句来确定用户所在的页面并且我遇到了一些麻烦。 (那些在底部)首先,这是查询代码:

    $per_page = 10; 
    $pages_query = mysql_query("SELECT COUNT(idnum) FROM images");
    $pages = ceil(mysql_result($pages_query, 0) / $per_page);
    $page = (isset($_GET['page'])) ? (int)$_GET['page'] :1;
    $start = ($page -1) * $per_page;
    
    $query = mysql_query("SELECT * FROM images ORDER BY idnum DESC LIMIT $start, $per_page");
    

    这是if语句部分:

    $nextend = $pages - 1;
    $next = $page + 1;
    $previous = $page - 1;
    
    if ($pages >= 1 && $page = 1) { 
        echo '<a href="?page='.$next.'">next</a>';
    } elseif ($pages >= 1 && $page = 2) {
        echo '<a href="?page='.$previous.'">previous</a>';
    }
    

    无论我在哪个页面,它总是会产生下一个按钮。如何检测页码,以便按照我想要的方式显示分页按钮?顺便说一句,我知道我还没有中间页面(下一页和上一页)的else语句。

3 个答案:

答案 0 :(得分:4)

您在if语句中分配而不是比较。你不想在if语句中使用它:

$page = 1

只是将1分配给$page

你想要这个:

$page == 1

或者这个:

$page === 1

答案 1 :(得分:0)

$nextend = $pages - 1;
$next = $page + 1;
$previous = $page - 1;
$maxpages = ? //You need to have a variable with the last page number

if ($pages > 1) {
    echo '<a href="?page='.$previous.'">previous</a>';
}
if ($page < $maxpages) { 
    echo '<a href="?page='.$next.'">next</a>';
}

我不明白你试图用if / else语句做什么逻辑,当检查变量是否等于数字/其他变量时你的“==”而不是“=”

答案 2 :(得分:0)

你要做的事情很简单:

  1. 如果您不在第一页,则必须显示后退按钮。
  2. 如果您不在最后一页,则必须显示下一个按钮。
  3. 请注意,这两个条件可以同时发生,因此在它们之间使用elseif将无法正常工作,因为它只允许其中一个执行。

    示例:

    if ( $page > 1 )
    {
        echo( "Previous" );
    }
    
    if ( $page < $pages )
    {
        echo( "Next" );
    }