将row_number与prepare语句一起使用

时间:2013-05-28 17:27:01

标签: php mysql prepared-statement

我正在创建一个表,其中包含来自MySQL的表中的30个条目。我在发送给sql的代码中使用LIMIT 30,但也有一堆下一页。该表将具有姓氏,名字和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);

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

2 个答案:

答案 0 :(得分:0)

要获取第二页,请使用the two-number form of 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

答案 1 :(得分:0)

不是每次都将Last id传递给下一页,我建议另外一种方法。
假设当前的网址是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>