使用findAll()后如何排序的问题.

#1 jungleeye

建立了一用户发的贴子的数据表,设定了一个timestamp,当有回复的时候,自动update为回帖时间。

首页显示想通过检查timestamp来实现最新回帖的列表
在findAll()的时候,如何排序?
实现order by timestamp desc limit 10之类的语言?

手册上没有详细范例和详细说明,求sort范例:
findAll —— 从数据表中查找记录

findAll与find的区别在于findAll是返回全部符合条件的记录,而find仅是返回findAll结果的第一条记录。

用法:findAll($conditions = null, $sort = null, $fields = null, $limit = null)

参数:

$conditions,数组形式,查找条件,同find的$conditions

*$sort,字符串,指定结果排序方向

*$fields,字符串,特殊指定返回的字段

*$limit,字符串,返回结果数量限制

例子:
view source
print?
1         // 还是需要查找小李的留言,不过这次是查找他的全部的留言。
2         // 首先需要准备查找条件
3         $conditions = array( 'name' => '小李' ); // 条件是同样的
4         $gb = spClass('gb'); // 初始化留言本模型类
5         $result = $gb->findAll($conditions); // 使用了findAll
6         dump($result); // 查看结果,   

2010-03-19 21:24:52

#2 jake

嗯,可以下载我们的实例来看看,或者直接试试填入些参数看看结果。

举例,winblog微博的main控制器的sidebar中,就有:

spClass('lib_user')->findAll(null, 'uid DESC', 'uid,username,nickname','9' );

这里的 order by timestamp desc limit 10 是:

findAll( null, 'timestamp desc ', null, '10' )

2010-03-20 09:13:10

#3 yuanjianhua

很好,说的很明白

2010-03-21 03:02:50