Php MySQL下一个上一个记录问题

Php MySQL下一个上一个记录问题,php,mysql,pdo,next,Php,Mysql,Pdo,Next,这是我的剧本 <?php if(isset($_GET['id'])) { $id = $_GET['id']; } else { $id = 1; } $random = $conn->query("SELECT * FROM records ORDER BY RAND()"); $row = $random->fetch(); $stmt_1 = $conn->prepare("SELECT * FROM recor

这是我的剧本

 <?php

 if(isset($_GET['id']))
 {
    $id = $_GET['id'];
}
else
{
    $id = 1;
}

    $random = $conn->query("SELECT * FROM records ORDER BY RAND()");
    $row = $random->fetch();

    $stmt_1 = $conn->prepare("SELECT * FROM records WHERE id > ? ORDER BY id ASC LIMIT 1");
    $stmt_1->bindValue(1,$id);
    $stmt_1->execute();
    $stmt_1->setFetchMode(PDO::FETCH_ASSOC);
    $row = $stmt_1->fetch();
    $id = $row['id'];

    $stmt_1 = $conn->prepare("SELECT * FROM records WHERE id < ? ORDER BY id DSC LIMIT 1");
    $stmt_1->bindValue(1,$id);
    $stmt_1->execute();
    $stmt_1->setFetchMode(PDO::FETCH_ASSOC);
    $row = $stmt_1->fetch();
    $id = $row['id'];

    ?>
查询工作正常,它会给我下一条记录,但不是我输入的id,如果我输入id=1返回id 2,或者id=2返回id 3的信息,结果不准确。所以我的问题是我应该怎么做才能返回正确的结果而不是+1。我知道它从0开始计数,我想在我的脚本中修复它,我想让它从1开始。

替换这个

   $id = 1;
    SELECT * FROM records WHERE id > ?

或者更换这个

   $id = 1;
    SELECT * FROM records WHERE id > ?


你为什么不把你的问题改成

编辑:删除记录时,查询将不起作用

$stmt_1 = $conn->prepare("SELECT * FROM records WHERE id = ?");
$stmt_1->bindValue(1,$id +1);
$stmt_1->execute();
因此,您将获得下一个最高id的记录

只是一个优化查询的提示。 还有一个问题是,在表定义中是否使用自动增量。如果这样做,您应该记住,这个mysql序列从一开始计算主键


希望它能帮上忙

非常感谢,现在它正在工作,但我的超链接现在无法工作…在你的超链接中,你想要的id是什么?相同id或id+1?它解决了您的哪个解决方案?第一个还是第二个?最好使用第二种解决方案。如果您在帮助我之前将hyperlink中的id与我的旧代码一起使用,则此超链接现在无法更改id+1。此超链接用于从中获取id的下一条记录:$id=$row['id'];-$stmt_1所以它可以走id+1。是的,我将使用第二个。谢谢你的提示。是的,ID是A_I,但我不认为$stmt_1->bindValue(1,$ID+1);我将获得下一个可能的记录如果下一个id被删除怎么办?
$stmt_1 = $conn->prepare("SELECT * FROM records WHERE id = ?");
$stmt_1->bindValue(1,$id +1);
$stmt_1->execute();