简单的SQL问题

时间:2009-07-12 13:37:58

标签: php sql pagination

(我无法弥补一个好头衔,对不起)

所以我使用这个分页:

$page = $_GET['page'];

$max = 5;

// if $page is empty, set page number to 1
if (empty($page)) $page = 1;

$limit = ($page - 1) * $max; 

$sql = mysql_query("SELECT * FROM posts ORDER BY date DESC LIMIT $limit, $max");

$totalres = mysql_result(mysql_query("SELECT COUNT(id) AS tot FROM posts WHERE tid =     1"),0);    

$totalpages = ceil($totalres / $max);
?>

这样可行,但我想要的是即使我更改页面,具有最早日期的帖子也始终保持在最顶层。我怎样才能做到这一点?我知道你可以,但我不记得如何。

希望你这样做,谢谢

1 个答案:

答案 0 :(得分:1)

您可能需要进行联合查询,因为您想要的实际上是两个数据的组合......

  1. 最老的帖子
  2. 所有其他帖子减去为页面位置调整的最旧帖子...
  3. 
        select * from posts order by date DESC limit 0,1
        union
        select * from posts order by date desc limit $start,$end
    

    现在调整你的值,所以start是你想要的最小1页(如果它是0,你最早的帖子将显示两次)