Php 指定号码后分页

Php 指定号码后分页,php,mysql,Php,Mysql,我使用以下sql在表中显示21条新闻: WHERE cat_id = $id ORDER BY added_date DESC LIMIT 0, 21; 我想在21后通过分页显示新闻,但我对SQL感到困惑: WHERE cat_id = $id ORDER BY added_date DESC LIMIT $start, $pergape; 此SQL显示所有新闻。如何在第二个sql中显示21后的新闻 提前感谢除了明显省略了SELECT。。。从…中,我假设您的代码中包含了这些内容 我不确

我使用以下sql在表中显示21条新闻:

 WHERE cat_id = $id  ORDER BY added_date DESC LIMIT 0, 21;
我想在21后通过分页显示新闻,但我对SQL感到困惑:

WHERE cat_id = $id  ORDER BY added_date DESC LIMIT $start, $pergape;
此SQL显示所有新闻。如何在第二个sql中显示21后的新闻


提前感谢

除了明显省略了
SELECT。。。从…
中,我假设您的代码中包含了这些内容

我不确定这是否解释了您得到的结果,但您在查询中拼错了
$perpage

WHERE cat_id = $id  ORDER BY added_date DESC LIMIT $start, $pergape;
                                                           ^^^^^^^^  
在中替换PHP变量的值后,尝试打印SQL,错误很可能会变得很明显。如果它是正确的,应该如下所示:

WHERE cat_id = 134  ORDER BY added_date DESC LIMIT 21, 21;

除了明显省略了
SELECT。。。从…
中,我假设您的代码中包含了这些内容

我不确定这是否解释了您得到的结果,但您在查询中拼错了
$perpage

WHERE cat_id = $id  ORDER BY added_date DESC LIMIT $start, $pergape;
                                                           ^^^^^^^^  
在中替换PHP变量的值后,尝试打印SQL,错误很可能会变得很明显。如果它是正确的,应该如下所示:

WHERE cat_id = 134  ORDER BY added_date DESC LIMIT 21, 21;

$start
设置为等于
$page\u size*$page\u number
。您的查询类似于:

$page_size = 21;
$page_number = isset($_GET['page']) ? intval($_GET['page']) : 0;

$start = $page_size * $page_number;

$query = ' ... WHERE cat_id = $id  ORDER BY added_date DESC LIMIT $start, $page_size;'

$start
设置为等于
$page\u size*$page\u number
。您的查询类似于:

$page_size = 21;
$page_number = isset($_GET['page']) ? intval($_GET['page']) : 0;

$start = $page_size * $page_number;

$query = ' ... WHERE cat_id = $id  ORDER BY added_date DESC LIMIT $start, $page_size;'

在我的分页中:$perpage=21;如果($page)$start=($page-1)*$每页@TheNone:是的,这对大多数人来说更有意义。我习惯于0索引列表。在我的分页中:$perpage=21;如果($page)$start=($page-1)*$每页@TheNone:是的,这对大多数人来说更有意义。我习惯于0索引列表。我已经编辑了我的问题。感谢您不必为此添加评论,我们可以看到您已编辑了问题。请注意,使用MySQL也支持的PostgreSQL样式
LIMIT$perpage OFFSET$start
,通常不会太混乱。我已编辑了我的问题。感谢您不必为此添加评论,我们可以看到您已经编辑了问题。请注意,使用PostgreSQL样式
LIMIT$perpage OFFSET$start
通常不会太混乱,MySQL也支持该样式。