MYSQL - 按ID获取下一个和上一个记录 - HTML用于超链接

ant*_*hat 4 html php mysql variables hyperlink

因此,我试图通过添加下一个和上一个链接来为CRUD添加一些便利,以便在我的数据库中的记录之间导航.

这是我的疑问:

$id=$_GET['id'];
$id = $currentid;
$prevquery= "SELECT * FROM inventory WHERE id < $currentid ORDER BY id DESC LIMIT 1"; 
$prevresult = mysql_query($prevquery);

$nextquery= "SELECT * FROM inventory WHERE id > $currentid ORDER BY id ASC LIMIT 1"; 
$nextresult = mysql_query($nextquery);
?>
Run Code Online (Sandbox Code Playgroud)

这是我的HTML:

<a href="http://www.url.com/crud/edit.php?id=<?php echo $prevresult; ?> ">Previous</a>

<a href="http://www.url.com/crud/edit.php?id=<?php echo $nextresult; ?> ">Next</a>
Run Code Online (Sandbox Code Playgroud)

现在我在PHPMyAdmin中测试了这些查询,并且他们生成了我想要的结果,但是我无法获得实际提供正确ID的超链接......在=之后它们只是空白.我究竟做错了什么?

jed*_*rds 10

mysql_query()返回结果集(资源).要从结果集中获取实际行,您需要使用类似的函数mysql_fetch_row().

您的"下一个"链接的代码如下所示:

PHP

$nextquery= "SELECT * FROM inventory WHERE id > $currentid ORDER BY id ASC LIMIT 1"; 
$nextresult = mysql_query($nextquery);
if(mysql_num_rows($nextresult) > 0)
{
    $nextrow = mysql_fetch_row($nextresult);
    $nextid  = $nextrow['id'];
}
Run Code Online (Sandbox Code Playgroud)

HTML

<a href="http://www.url.com/crud/edit.php?id=<?php echo $nextid; ?> ">Next</a>
Run Code Online (Sandbox Code Playgroud)

以前的链接也是类似的.

强制性说明:对于新代码,您应该认真考虑使用 PDO.

高级注释:您可以将查询组合到单个查询中,如:

SELECT
  (
    SELECT id
    FROM inventory WHERE id < $currentid ORDER BY id DESC LIMIT 1
  ) AS previd,
  (
    SELECT id
    FROM inventory WHERE id > $currentid ORDER BY id ASC LIMIT 1
  ) AS nextid
Run Code Online (Sandbox Code Playgroud)

然后相应地调整逻辑.