sunxch100 发表于 2011-4-29 12:20:22

Codeigniter按条件查询以后进行分页的问题

本帖最后由 sunxch100 于 2011-4-29 12:22 编辑

看论坛很多朋友说CI带条件分页很麻烦,这里贴出我的一点总结,来自我做的实际项目中,希望对你有帮助。
在CI框架中,如果根据条件查询一些结果,并且对结果进行分页,如果点击下一页,可能会导致下一页显示的就是不是符合条件的结果集了,而
只是显示全部的结果,就像没有按条件显示一样。
可以这样处理这个问题: $config['base_url'] = 'http://example.com/index.php/test/page/'; 这里有个base_url,关键就在这里 当分页以后,鼠标移到分页连接上,会看到这样的超链接: http://example.com/index.php/test/page/2 这里会自动给加上偏移量,这里是2。 再进一步,如果到查询条件,例如 http://example.com/index.php/test/page/aUser/admin/2 这里'aUser'和'admin'是查询条件,2是偏移量 那么可以在配置base_url的时候这样写 $config['base_url'] ="
http://example.com/index.php/test/page/$username/$type"; 当然了page方法也必须要接受参数 function page($username,$type){} 这样的话,就可以每次根据条件显示结果了。 至于参数何来,在首次生成base_url的时候,那些参数就带上了,生成的分页链接也自然是: http://example.com/index.php/test/page/aUser/admin/2 这样在点击的时候也会自动将搜索的关键字传递到方法中去。 希望对你有所帮助,呵呵。



273579540 发表于 2011-5-6 21:54:22

好,收藏,我做实验测试一下

lhaojob 发表于 2011-10-17 22:35:44

您好,您的意思我大概明白。是用查询参数,事先占住参数的位置,这样取偏移量时,就可以固定取(如您例子所示)第五个了。。。
想问您,如果不查询只翻页(查询参数没有值)的话,是不是得有个默认的值来占位?比如如果没有查询,是不是翻页的链接应该是:http://example.com/index.php/test/page/null/null/offset ?

sunboat 发表于 2011-10-20 12:16:45

本帖最后由 sunboat 于 2011-10-20 12:18 编辑

我是把page的segment设置成4. segment(3)是查询条件。3是把条件数组json后再base64_encode. :lol
当然,URL允许的字符里要加上=号才行。

类似 http://localhost/index.php/controller/action/a3kjasdl3jfklkj39lkj=/page

lhaojob 发表于 2011-10-25 11:31:32

楼上比我的想法好,至少省的算最后一个参数是第几个了。。。而且可以不用什么默认值占位。。。就是如果路径的字符数是不是有限的?如果是的话,超了可能不太好吧?

longgo 发表于 2011-11-17 21:33:50

用get传参就行啦

see-sea 发表于 2012-5-16 16:43:40

感谢楼主,非常棒

★♂翼☆ 发表于 2013-2-23 11:01:24

Mark 先研究下
页: [1]
查看完整版本: Codeigniter按条件查询以后进行分页的问题