#1 jake
SpeedPHP中的分页函数非常容易使用,几乎就是在普通数据库操作findAll的基础上加入一行代码即可获取到分页数据。下面我们来介绍一下如何制作分页程序以及使用smarty显示页码。
分页Smarty留言本例子下载:guestbook-sppager[1].rar
这里我们使用的是基于Smarty的留言本,为了简单起见,我们只保留blue的蓝色模板来制造我们的分页Smarty留言本。
看看我们原来的main.php文件中的index:
$guestbook = spClass("guestbook");
$this->results = $guestbook->findAll();
$this->display("blue/index.html");
这里使用了findAll来获取全部的留言数据,然后我们来改成分页的程序:
$guestbook = spClass("guestbook");
// 这里使用了spPager,同时用spArgs接受到传入的page参数
$this->results = $guestbook->spPager($this->spArgs('page', 1), 5)->findAll();
// 这里获取分页数据并发送到smarty模板内
$this->pager = $guestbook->spPager()->getPager();
$this->display("blue/index.html");
这里我们就可以看到输出的结果和原来的不同,页面上仅有五条留言数据。好的,我们来看看是怎么做的。
$this->results = $guestbook->spPager($this->spArgs('page', 1), 5)->findAll();
spPager是分页程序,第一个参数是页码,也就是第几页,这里我们用$this->spArgs('page', 1)来获取传过来的page,后面的1是如果在page没有值的时候,默认返回1。第二个参数是分页大小,也就是每页显示几条记录,这里设置是每页显示5条记录。
spArgs的使用方法可以参考本站其他文章。
$this->pager = $guestbook->spPager()->getPager();
在使用了spPager来进行findAll后,就可以使用getPager()方法来获取分页数据。分页数据的格式是:
Array
(
[total_count] => 13 // 数据总记录
[page_size] => 5 // 每页多少条记录
[total_page] => 3 // 总页数
[first_page] => 1 // 第一页的页码
[prev_page] => 1 // 上一页的页码
[next_page] => 2 // 下一页的页码
[last_page] => 3 // 最后一页的页码
[current_page] => 1 // 当前页码
[all_pages] => Array // 页码数据,这里是全部的页码
(
[0] => 1
[1] => 2
[2] => 3
)
)
请注意分页数据的各数据的意思。
下一篇文章将介绍如何在smarty模板中使用这些分页数据。
2012-08-04 16:36:45