2011-12-24 117 views
0

我想打一个简约的分页脚本,基本上做了三两件事:PHP分页 - 有麻烦检测网页

  1. 在第一页,只是下一个按钮。
  2. 在最后一页,只是一个上一个按钮。
  3. 对于这两者之间的所有其他人。

我有大部分的代码已经算出来了,但我只是做了一些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>'; 
} 

它总是导致下一个按钮,不管什么我网页上。如何检测页码,以便我可以按照自己想要的方式显示分页按钮?顺便说一下,我知道我没有中间页面的声明(下一页和上一页)。

回答

4

您正在分配您的if语句而不是比较。你不会在你的if语句要这样:

$page = 1 

这只是分配给1$page

你想这样的:

$page == 1 

或者这样:

$page === 1 
+0

运行完美。谢谢! – 2011-12-24 16:29:17

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>'; 
} 

我不明白你想与你如果检查时/ else语句,还做什么逻辑如果一个变量等于一个数字/其他变量,你的“==”不是“=”

0

你必须做的事情很简单:

  1. 如果您不在第一页上,则必须始终显示后退按钮。
  2. 如果你不在最后一页,你总是需要显示下一个按钮。

请注意,这两种情况可能同时发生,所以在它们之间使用elseif将不起作用,因为它只允许其中一个执行。

例子:

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

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