使用row_number和prepare语句


Using row_number with prepare statements

我正在制作一个表,其中有30个条目在in,从表从MySQL。我使用LIMIT 30在代码发送到sql,但也有一堆下一页。该表将包含姓、名和id。在页面底部,有一个下一页按钮。它链接到同一个页面,但在get变量中发送最后一个id。

<a href=<?php echo "students_view.php?id=$lastvari"; ?>><button type="button">Next Page</button></a>

$lastvari是最后一个id。当从mysql调用数据时,我使用prepare语句:

$stmt = $con->prepare("SELECT Last_Name, First_Name, Student_ID FROM Students LIMIT 30");
$stmt->execute();
$stmt->bind_result($last_name, $first_name, $student_id);

我如何告诉MySQL在发送给它的ID之后启动?我研究row_number(),但我不确定这是否是我要找的。谢谢大家

要获得第二页,使用LIMIT的双数字形式:

SELECT Last_Name, First_Name, Student_ID FROM Students LIMIT 30,30

获取第三页:

SELECT Last_Name, First_Name, Student_ID FROM Students LIMIT 60,30

等等。第一页应该是LIMIT 0,30

每次传递最后id到下一页,我建议一个替代方案。
假设当前url为www.yoursite/students_view.php?page=0

<?php
$start = $_GET['page'] * 30;
$stmt = $con->prepare("SELECT Last_Name, First_Name, Student_ID FROM Students LIMIT $start, 30");
$stmt->execute();
$stmt->bind_result($last_name, $first_name, $student_id);
?>
<?php
$page = $_GET['page']; //don't forget to sanitize
$page = $page+1;
?>
<a href="<?php echo "students_view.php?page=$page"; ?>" >
   <button type="button">Next Page</button>
</a>