在特定号码后进行寻呼

时间:2011-01-26 20:35:15

标签: 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之后的新闻?

提前致谢

2 个答案:

答案 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;