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;
}