Php 指定号码后分页
我使用以下sql在表中显示21条新闻: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。。。从…中,我假设您的代码中包含了这些内容 我不确
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也支持该样式。