ThinkPHP 查詢資料
ThinkPHP 查詢資料主要提供下列幾類查詢:
- select:一般查詢,同findAll() 方法
- find:取得符合查詢條件的一筆記錄
- getBy動態查詢:根據某個欄位取得符合查詢條件的一筆記錄
##getField:取得某個欄位的值或多個欄位的索引陣列- 區間查詢:取得符合查詢條件的區間記錄
- 統計查詢:取得符合查詢條件的統計資料
- 定位查詢:取得符合查詢條件的一條或多筆記錄
- 原生SQL查詢:支援以原生SQL 進行查詢或執行操作
-
select()
select() 是ThinkPHP 中最常用的普通查詢方法,得到的是一個二維陣列。 findAll() 為 select() 方法的別名,並建議使用 select()。
讀取操作
下面的範例將user 表的所有資料讀取出來並顯示:
public function read(){
$Dao = M("User");
// 查询数据
$list = $Dao->select();
//dump($list);// 用 dump() 可以在调试阶段查看数据是否已读取
// 模板变量赋值
$this->assign("list", $list);
// 输出模板
$this->display();
}
登入後複製
假設上面的範例對應的class 檔案為Lib/Action/ IndexAction.class.php ,那麼對應的模板檔案為Tpl/default/Index/read.html。
資料顯示範本
範本檔案用於顯示剛才讀取的 User 表的資料。在學習階段,要不想使用模板,也可以直接使用 foreach 語法在 read() 操作內直接顯示讀取的資料。下面是模板對應的程式碼片段,我們將讀取的資料在一個表格中顯示出來:
<table border="1">
<tr>
<th width="10%">ID</th>
<th width="30%">用户名</th>
<th width="30%">电子邮件</th>
<th>注册时间</th>
</tr>
<volist name="list" id="vo">
<tr>
<td align="center">{$vo['uid']}</td>
<td>{$vo['username']}</td>
<td>{$vo['email']}</td>
<td>{$vo['regdate']|date='Y-m-d H:i',###}</td>
</tr>
</volist>
</table>
登入後複製
field() 查詢指定欄位
select() 方法預設是查詢所有欄位的數據,如果要查詢某個或某些字段,就需要使用filed() 方法。
filed() 是屬於ThinkPHP 連貫操作中的一個方法,如在上面的例子中,只查詢使用者名稱和電子郵件地址,則查詢方法對應更改為:
$list = $Dao->field('username,email')->select();
登入後複製
使用查詢條件
使用ThinkPHP 連貫運算可以很方便的對資料查詢使用查詢條件。以下是一些簡單的查詢條件的範例。
where() 條件
……
// 构造查询条件
$condition['username'] = 'Admin';
// 查询数据
$list = $Dao->where($condition)->select();
……
登入後複製
上述查詢的就是 username='Admin' 這個條件的資料。關於 ThinkPHP where 條件更詳細資料,請參閱《ThinkPHP Where 條件》。
ORDER BY 排序
在查詢中使用ORDER BY 對資料進行排序:
……
// 查询数据
$list = $Dao->order('uid DESC')->select();
……
登入後複製
這個範例就是資料依照ORDER BY uid DESC 進行查詢,而order() 方法中的參數意義跟SQL 語句中的意義完全一致。
LIMIT 限制
在查詢中使用LIMIT 限定資料傳回的記錄數:
……
// 查询数据
$list = $Dao->limit('4,5')->select();
……
登入後複製
這個範例就是將第5-10 筆記錄取出,limit() 方法內的參數意義跟SQL 語句中的LIMIT 完全一致。
連貫操作
ThinkPHP 中允許將資料物件中的各個方法寫在一起操作,如:
$list = $Dao->order('uid DESC')->limit('4,5')->select();
登入後複製
更多ThinkPHP相關技術文章,請造訪
ThinkPHP教學欄位進行學習!
以上是ThinkPHP查詢資料select(findAll)方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!