Php 单击按钮显示数据库中的下一条记录(限制)

Php 单击按钮显示数据库中的下一条记录(限制),php,pdo,pagination,limit,Php,Pdo,Pagination,Limit,我的代码出了什么问题。。我尝试单击“下一步”按钮以显示数据库中的下一条记录。。但当我点击时什么也没发生 这是我获取记录的功能 public function getBooks() { $limit = 1; //SELECT loginUser.username, Library.nameOfBook FROM loginUser JOIN userBook JOIN Library ON userBook.user_id = loginUser.id AND userBoo

我的代码出了什么问题。。我尝试单击“下一步”按钮以显示数据库中的下一条记录。。但当我点击时什么也没发生

这是我获取记录的功能

  public function getBooks()
{
    $limit = 1;
    //SELECT loginUser.username, Library.nameOfBook FROM loginUser JOIN userBook JOIN Library ON userBook.user_id = loginUser.id AND userBook.book_id = Library.id WHERE loginUser.username="loay";
    $query = "SELECT Library.nameOfBook FROM loginUser JOIN userBook JOIN Library ON userBook.user_id = loginUser.id AND userBook.book_id = Library.id WHERE loginUser.username=:username LIMIT $limit";
    $statment = $this->db->prepare($query);
    $statment->execute([
        ':username' => $this->username
    ]);
    $result = $statment->fetchAll();

    echo "<table border='1'>
    <tr>
    <th>Books</th>
    </tr>";
    foreach($result as $row){
        echo "<tr>";
        echo "<td>" . $row['nameOfBook'] . "</td>";
        echo "</tr>";
    }
    echo "</table>";

}

您只有要提取的记录数,但没有给出start参数

您的查询应该是
$query=“在userBook.user\u id=logiuser.id和userBook.book\u id=Library.id上的logiuser.username=:username LIMIT$start,$LIMIT”

请注意
$start,$limit
limit

那么你的代码应该是

 if( isset($_POST['next'])){

     $start +=1;  
 }
**编辑: 我只是认为您是通过用户名获取记录,我进一步假设每个用户名都是唯一的。在这种情况下,分页将不起作用。因为每个用户名只有一行。尝试类似以下查询:在userBook.user\u id=logiuser.id和userBook.book\u id=Library.id LIMIT$start,$LIMIT“ 没有where子句


只有在获取由提供的
登录用户添加的记录时,才能使用
WHERE logiuser.username=:username
。username

控制台中是否有任何错误?您是否在index.php中获得$limit?一条记录是。。但当我点击“下一步”按钮时,记录会被删除,就像我重新加载页面时一样。谢谢你的回复。。但是它仍然不起作用。我应该在select语句之前声明$limit=1吗:`$limit=1$query=“在userBook.user\u id=logiuser.id和userBook.book\u id=Library.id上从logiuser JOIN userBook JOIN Library中选择Library.nameOfBook,其中logiuser.username=:username LIMIT$start,$LIMIT”`是的,在查询中使用变量之前,应该初始化变量。最初
$start=0
$limit=1请提供其他帮助!?如果您尚未解决此问题,问题可能是您准备好的语句,请附上您的
execute
参数。可能绑定变量的数量与提供的令牌的数量不匹配
 if( isset($_POST['next'])){

     $start +=1;  
 }