Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP/MySQL选择限制器问题_Php_Mysql_Mysqli_Limit - Fatal编程技术网

PHP/MySQL选择限制器问题

PHP/MySQL选择限制器问题,php,mysql,mysqli,limit,Php,Mysql,Mysqli,Limit,我以前发布过这个问题,但我不知道原因,但现在我知道了。另一个问题是无法控制的 我正在制作一个页面功能(下一页等),需要我的$limiter来选择每页9个查询。我遇到的问题是第二页(9,9)没有出现 if(isset($_GET["p"]) && is_numeric($_GET["p"]) && $_GET["p"] > 1) { $currentPage = $_GET["p"]; $limiter = $currentPa

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

我正在制作一个页面功能(下一页等),需要我的$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))函数添加哪些内容,使其选择all if,而不是跳过9,9。

由于您的
if条件,您缺少第1页

if(isset($_GET["p"]) && is_numeric($_GET["p"]) && $_GET["p"] > 1) {
此选项设置为跳过分页逻辑,除非页的大小大于1。因此它忽略了page=1


仅当
p
为0时,根据您的代码,如果p=1,您的代码将呈现0,9,那么您的代码将呈现9,9

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

尝试更改此选项:

if(isset($_GET["p"]) && is_numeric($_GET["p"]) && $_GET["p"] > 1) {
为此:

if(isset($_GET["p"]) && is_numeric($_GET["p"]) && $_GET["p"] >= 1) {
$limiter = ($currentPage-1) * 9;
这是:

$limiter = $currentPage * 9;
为此:

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

因为如果$currentPage为1,您希望您的限制为0,9。

请阅读我回答中的注释您的假设不正确否,因为在if之后,有else代码表示当前页面为1。第1页不是问题所在,是第2页。有没有办法绕过这一点,使起点可以是p=1(0,9)p=2(9,9)等等。他跑得更快:)。只需确保将$_GET[“p”]>1更改为$_GET[“p”]>=1即可。干杯