如何使用 php 建立下一个和上一个链接?
Posted
技术标签:
【中文标题】如何使用 php 建立下一个和上一个链接?【英文标题】:How to build next and previous links with php? 【发布时间】:2011-10-14 04:41:13 【问题描述】:我使用此代码获取有关某个 id 的信息
$sql = dbquery("SELECT * FROM `videos` WHERE `id` = ".$local_id." ");
while($row = mysql_fetch_array($sql))
$video_id = $row["id"];
$video_title = $row["title"];
假设页面的链接是 example.com/video.php?id=34
如何根据当前 id 获取下一个和上一个 $video_id 和 $video_title?
一个问题是我不能将当前id的值增加或减少1,因为35或33可能同时被删除......
我怎样才能做到这一点?
//编辑
我有一个非常大的问题:上一个链接将我发送到正确的链接,但下一个链接总是将我发送到数据库中添加的最后一个视频。
如果我转到数据库中添加的最后一个或第一个视频,我会收到错误消息,因为没有添加更多的下一个和上一个视频。
【问题讨论】:
如果你不能做id-1或id+1,那我们怎么知道上一个/下一个视频呢?有日期顺序之类的吗?如果是,您(可以)尝试选择日期此视频中的日期,然后设置 LIMIT 1。只是一个想法。 假设您应该使用“SELECT id FROM Videos WHERE id > ".intval($id)." ORDER BY id ASC LIMIT 1 获取下一个 id,并且使用“SELECT id FROM Videos WHERE id”获取上一个 id 我在这个版本中遇到了同样的问题 【参考方案1】:也许另外两个查询会起作用......
select id,title from videos where id < $local_id order by id desc limit 1
select id,title from videos where id > $local_id order by id asc limit 1
【讨论】:
您好 m3tsys,关于下一个总是将您发送到最后一个,请确保您使用 'asc' 作为订单 ID,如果已经开始或已经结束,您可以使用 mysql_num_rows () 让您知道是否返回任何内容,如果返回 0 行,则从 db 中获取第一个或最后一个 id 谢谢,不使用“ASC”导致数据库中最后一个条目出现问题。我会尝试使用 mysql_num_rows() 看看它是否有效。 我使用了 mysql_num_rows(),现在我不再有错误了。谢谢!【参考方案2】:您必须使用 select
和 limit
来获得您想要的那一行,即,
SELECT * FROM `videos` WHERE `id` < " . $local_id . " ORDER BY `id` DESC LIMIT 1
或者使用>
和ORDER BY
idASC
作为next
视频,而不是我上面显示的previous
。
【讨论】:
【参考方案3】:到此为止
// entry per page
$rowsPerPage = 3;
// Set page number
if(isset($_GET['page']))
$pageNum = $_GET['page'];
else
$pageNum = 1;
注意:以下代码用于显示/设置下一页和上一页页码。
注意:如果当前页面是主页,则默认 $pageNum 为 1 并且 如果 $pageNum 设置为 2,它将作为
if($pageNum)
$PreviousPageNumber = $pageNum - 1;
$NextPageNumber = $pageNum + 1;
echo '<a href="?page='. $PreviousPageNumber .'>Previous Page</a>';
echo '<a href="?page='. $NextPageNumber .'>Next Page</a>";
注意:以下代码用于显示受页码影响的记录
$GetPreviousRecord = ($pageNum - 1) * $rowsPerPage;
注意:LIMIT 的第一个可选值是起始位置。笔记: 第二个需要的值是要检索的行数。
$query = "SELECT * FROM post WHERE LIMIT $GetPreviousRecord, $rowsPerPage";
$result = mysql_query($query);
最后使用 WHILE 循环使用 LIMIT 从数据库中获取所有记录。
【讨论】:
以上是关于如何使用 php 建立下一个和上一个链接?的主要内容,如果未能解决你的问题,请参考以下文章