我有一个提交表,用户可以在其中对内容进行投票。我想添加按投票顺序浏览提交的功能。我想限制每个页面上出现的提交数量并实现分页系统。
所以我了解如何使用 LIMIT 和 offset 参数来检索行,但是这会按照数据库中的顺序获取数据。我知道如何在 CI 中实现分页。我也知道如何按投票列排序,但我不确定如何将两者结合起来,以便在多个页面上获得正确的输出。以下是我执行 LIMIT 和 ORDER BY 的方式:
$this->db->limit($count);
$this->db->order_by('votes','desc');
$query = $this->db->get('submission', $num, $offset);
它应该如何工作:
如果每个页面有 10 个按投票排序的提交,则第一页应包含前 10 名,第二页应包含投票数从第 11 到第 20 的提交,依此类推。
到目前为止,我所做的只是简单地将提交表中按投票排序的所有数据检索到一个数组中,然后将其用作分页的数据源。但是,随着数据集的增长,这将变得相当低效,我想知道是否有一些我不知道的 SQL 将允许我只为每个页面选择适当的数据?