PHP/MySQL SELECT LIMITER 问题

标签 php mysql mysqli limit

我之前发布过这个问题,但我不知道原因,但现在我知道了。另一个问题是无法控制的。

我正在制作一个页面函数(下一页等),并且需要我的 $limiter 来选择每页 9 个查询。我遇到的问题是第二页 (9,9) 不显示。

if(isset($_GET["p"]) && is_numeric($_GET["p"]) && $_GET["p"] > 1) {
        $currentPage = $_GET["p"];
        $limiter = $currentPage * 9;
} else {
        $currentPage = 1;
        $limiter = 0;
}

$finalQuery = "SELECT * FROM forum_replies WHERE thread_id = '1' ORDER BY id ASC LIMIT " . $limiter . ",9";

因此,如果页面为 1,则 $limiter 为 0。所以 .. 0,9 进来

下一个应该是 9,9,但是代码完全跳过了它,所以我错过了第二页

第三页作品为 18,9

所以..它会变成0,9 - 18,9,27,9等等..完全跳过9,9。我会在 if(isset)) 函数中添加什么,以使其选择所有 if 且不跳过 9,9。

最佳答案

如果我没有错的话,我认为您对 $limiter 变量的计算是不正确的。 它应该是 $limiter = ($currentPage - 1) * 9;

if(isset($_GET["p"]) && is_numeric($_GET["p"]) && $_GET["p"] > 1) {
    $currentPage = $_GET["p"];
    $limiter = ($currentPage -1) * 9;
} else {
    $currentPage = 1;
    $limiter = 0;
}

$finalQuery = "SELECT * FROM forum_replies WHERE thread_id = '1' ORDER BY id ASC LIMIT " . $limiter . ",9";

关于PHP/MySQL SELECT LIMITER 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17390364/

相关文章:

php - 使用 php 将对象插入现有数组

mysql - 加入五张 table

php - 给出警告 : mysqli_select_db() expects exactly 2 parameters, 1 *13*

mysql - SQL INNER JOIN 和 COUNT

java - Mysql&MSAccess : insert into table which have an incremented field

php - 将要上传的图像的路径保存在数据库的服务器文件夹中

php - 为什么此 UPDATE 准备语句不起作用,但在 SQL 数据库中使用时有效

php - 通过 javascript 发出警报文本框

php - 如何通过此文件上传传递 csrf token

javascript - 如何在单击图像时刷新特定的 div