我从这个帖子中获取了工作代码: Creating Next and Previous buttons for navigation
它对我有用但是现在我想问一下,如果链接到达第一个或最后一个ID,有没有办法禁用链接?
这是我的简短代码:
function getNavID($id) {
$result4= mysql_query("SELECT
( SELECT id FROM products_list WHERE id > '$id' LIMIT 1 )
AS nextValue,
( SELECT id FROM products_list WHERE id < '$id' ORDER BY id DESC LIMIT 1 )
AS prevValue
FROM products_list");
if ($resultID = mysql_fetch_array($result4)) {
return $resultID;
}
else {
return NULL;
}
}
$LinkID = getNavID($id);
<p><a href="update.php?id=<?php echo urlencode($LinkID['prevValue']); ?>">Previous</a></p>
<p><a href="update.php?id=<?php echo urlencode($LinkID['nextValue']); ?>">Next</a></p>
假设我现在所在的页面是ID = 1,那么逻辑上,没有ID小于1.如果ID达到最小和最大ID,我有什么方法可以禁用链接?< / p>
先谢谢你们。
此致 杰夫
答案 0 :(得分:2)
对于ID = 1,$LinkID['prevValue']
应返回NULL,您可以检查easily。包含一个检查,以便只有在存在上一个/下一个值时才打印链接,例如:
<p>
<?php
if (!is_null($LinkID['prevValue'])) {
>?
<a href="update.php?id=<?php echo urlencode($LinkID['prevValue']); ?>">Previous</a>
<?php
} else {
echo "No previous entries.";
}
?>
</p>
类似于下一个条目。
顺便说一句,为了完整起见,我会像这样重写SQL语句:
SELECT
( SELECT id FROM products_list
WHERE id > '$id' LIMIT 1 ) AS nextValue,
( SELECT id FROM products_list
WHERE id < '$id' ORDER BY id DESC LIMIT 1 ) AS prevValue
FROM products_list
LIMIT 1
即。最后增加一个LIMIT 1。您可能没有注意到结果的差异,但是对于您的语句,数据库在表products_list中为每个条目提供一行(其中您只使用第一行,并且它们都相等)。