ThinkPHP 查詢數據 select(findAll) 方法

ThinkPHP 查詢數據

ThinkPHP 查詢數據主要提供如下幾類查詢:php

  1. select:普通查詢,同 findAll() 方法
  2. find:取得符合查詢條件的一條記錄
  3. getBy動態查詢:根據某個字段取得符合查詢條件的一條記錄
  4. getField:獲取某個字段的值或多個字段的索引數組
  5. 區間查詢:取得符合查詢條件的區間記錄
  6. 統計查詢:取得符合查詢條件的統計數據
  7. 定位查詢:取得符合查詢條件的一條或多條記錄
  8. 原生SQL查詢:支持以原生 SQL 進行查詢或執行操做

select()

select() 是 ThinkPHP 中最經常使用的普通查詢方法,獲得的是一個二維數組。findAll() 爲 select() 方法的別名,並建議使用 select()。html

讀取操做

下面的例子將 user 表的全部數據讀取出來並顯示:thinkphp

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() 操做內直接顯示讀取的數據。下面是模板相應的代碼片斷,咱們將讀取的數據在一個表格中顯示出來:ide

<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>

要了解更多關於 ThinkPHP模板 的知識,請參閱:《ThinkPHP 模板》。學習

field() 查詢指定字段

select() 方法默認是查詢全部字段的數據,若是要查詢某個或某些字段,就須要使用 filed() 方法。ui

filed() 是屬於 ThinkPHP 連貫操做 中的一個方法,如在上面的例子中,只查詢用戶名和電子郵件地址,則查詢方法對應更改成:this

$list = $Dao->field('username,email')->select();

使用查詢條件

使用 ThinkPHP 連貫操做 能夠很方便的對數據查詢使用查詢條件。下面是一些簡單的查詢條件的例子。調試

where() 條件


……   
    // 構造查詢條件
    $condition['username'] = 'Admin';
    // 查詢數據
    $list = $Dao->where($condition)->select();
……

上述查詢的就是 username='Admin' 這個條件的數據。關於 ThinkPHP where 條件更詳細資料,請參閱《ThinkPHP Where 條件》。code

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();

參考閱讀

  1. ThinkPHP 模板
  2. ThinkPHP 模板循環輸出 Volist 標籤
  3. ThinkPHP Where 條件
  4. ThinkPHP 連貫操做
相關文章
相關標籤/搜索