我用这个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之后的新闻?
提前致谢
答案 0 :(得分:1)
将$start
设为$page_size * $page_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;'
答案 1 :(得分:0)
除了我在您的代码中假设的SELECT ... FROM ...
的明显遗漏之外,您的SQL看起来是正确的。
我不确定这是否能解释您获得的结果,但您在查询中拼错了$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;