Php 限制选择哪些行-mysql

Php 限制选择哪些行-mysql,php,mysql,Php,Mysql,我试图根据用户单击的链接设置查询的限制值 此代码检查用户是否单击了链接,并相应地设置值: if(isset($_GET['page']) && $_GET['page']>0){ $y = $_GET['page']; $upper = $y * 10; $lower = $upper - 10; $limit = "$lower,$upper"; } else{ $limit = "0,10"; } 例如,如果链接是“index.

我试图根据用户单击的链接设置查询的限制值

此代码检查用户是否单击了链接,并相应地设置值:

if(isset($_GET['page']) && $_GET['page']>0){
    $y = $_GET['page'];
    $upper = $y * 10;
    $lower = $upper - 10;
    $limit = "$lower,$upper";
}
else{
    $limit = "0,10";
}
例如,如果链接是
“index.php?page=1”
限值为
0,10

if(isset($_GET['page']) && $_GET['page']>0){
    $y = $_GET['page'];
    $lower = $y * 10 - 10;
    $limit = "$lower,10";
}
else{
    $limit = "0,10";
}
如果链接为
page=2
限制为
10,20

查询:

$sql = mysql_query("select * from comments order by time desc limit $limit") or die (mysql_error());
出于某种原因,它没有选择我想要的行。 我做错了什么?

它不是“上下”,而是“偏移量,行数”。这意味着您需要图案

  • 0,10
  • 10,10
  • 20,10
  • 30,10
  • 以此类推。

    它不是“上下”,而是“偏移量,行数”。这意味着您需要该模式

  • 0,10
  • 10,10
  • 20,10
  • 30,10

  • 等等。

    您的分页逻辑是错误的

    阅读本手册第条:

    对于两个参数,第一个参数指定 要返回的第一行,第二行指定 要返回的行。初始行的偏移量为0(不是1):


    您的分页逻辑错误

    阅读本手册第条:

    对于两个参数,第一个参数指定 要返回的第一行,第二行指定 要返回的行。初始行的偏移量为0(不是1):


    LIMIT的第二个参数是希望查询返回的行数。如果希望每次最多选择10行,则应将其固定在
    10

    if(isset($_GET['page']) && $_GET['page']>0){
        $y = $_GET['page'];
        $lower = $y * 10 - 10;
        $limit = "$lower,10";
    }
    else{
        $limit = "0,10";
    }
    

    LIMIT的第二个参数是希望查询返回的行数。如果希望每次最多选择10行,则应将其固定在
    10

    if(isset($_GET['page']) && $_GET['page']>0){
        $y = $_GET['page'];
        $lower = $y * 10 - 10;
        $limit = "$lower,10";
    }
    else{
        $limit = "0,10";
    }
    

    它选择了哪些行?您是否尝试过直接在MySQL数据库上而不是通过PHP执行查询?它输出什么?page=1按预期选择10行,page=2选择20行,page 3选择22行…它选择了哪些行?您是否尝试过直接在MySQL数据库上执行查询而不是通过PHP?它输出什么?第1页按预期选择10行,第2页选择20行,第3页选择22行。。。