使用limit子句时,Expression Engine的Query模块出现问题

时间:2011-01-05 17:20:23

标签: php sql expressionengine

好吧,我没有任何运气就打了IRC,没有运气就尝试了消息论坛。我会给老忠实的StackOverflow一个机会。

我正在使用ExpressionEngine 2.1并使用查询模块生成成员列表。成员列表相当大,我想对它进行分页。根据{{​​3}},我在我的sql语句之外使用我的限制子句。

以下是查询:

{exp:query sql="SELECT * FROM exp_members WHERE group_id=5 OR group_id=7 OR group_id=8 OR group_id=9 OR group_id=10 OR group_id=11 OR group_id=12" limit="10"  paginate="bottom"}

该页面仍会尝试抓取所有成员,挂起并显示内存不足错误。如果我在sql语句中对limit子句进行硬编码,则会按预期返回,但后来我失去了分页。试着不写新的分页代码。

任何人都会遇到这种情况,并有解决方法或任何想法吗?

2 个答案:

答案 0 :(得分:1)

尝试使用IN运算符并仅选择所需的字段而不是通配符。

{exp:query limit="10" paginate="bottom" sql="SELECT member_id, screen_name FROM exp_members WHERE group_id IN (5, 7, 8, 9, 10, 11, 12)"}

答案 1 :(得分:0)

嗯,据我所知,查询标记上的“限制”功能不会限制您的结果集,因此这就是页面挂断的原因。限制功能的作用是设置使用分页时在页面上显示的结果数。您将不得不在查询上使用您想要的限制。希望这些信息有所帮助。