【发布时间】:2011-09-09 20:45:03
【问题描述】:
所以我正在为类似博客的系统创建一个分页系统。我已经有了使用 limit,offset 来限制查询的整个概念。但是,在创建实际导航时遇到了一个问题。
我不知道如何计算我的总页数。现在,显然我可以运行一个简单地选择所有行数的查询,但是,我觉得这似乎不是最有效的方法。
无论如何我可以提取原始查询中的总行数吗?
$this->DB->build( array('select' => 'a.*',
'from' => array( 'ccs_custom_database_1' => 'a' ),
'order' => 'field_3 DESC',
'where' => 'field_6=",1,"',
'limit' => array($page,10),
'add_join' => array(
array(
'select' => 'm.members_display_name,m.members_seo_name',
'from' => array( 'members' => 'm' ),
'type' => 'inner',
'where' => 'a.member_id=m.member_id'
),
array(
'select' => 'c.category_name,c.category_furl_name',
'from' => array( 'ccs_database_categories' => 'c' ),
'type' => 'inner',
'where' => 'a.category_id=c.category_id'
)),
));
【问题讨论】:
-
向我们展示在您的选择中添加
COUNT(id) as total的原始查询可能会起作用 -
您想计算所有行而不查询数据库中的 COUNT 吗?
-
@Damien na 他想将总行数添加到他的原始查询中
-
这个查询是在 IPB 论坛内部使用的,所以语法可能有点奇怪。然而,它是不言自明的。
-
你需要让它独立于数据库吗?分页通常涉及许多 DBMS 特定的技巧。
标签: php sql pagination