首頁  >  文章  >  php框架  >  ThinkPHP查詢資料select(findAll)方法

ThinkPHP查詢資料select(findAll)方法

步履不停
步履不停原創
2019-06-25 16:31:156527瀏覽

ThinkPHP查詢資料select(findAll)方法

ThinkPHP 查詢資料

ThinkPHP 查詢資料主要提供下列幾類查詢:

  1. select:一般查詢,同findAll() 方法
  2. find:取得符合查詢條件的一筆記錄
  3. getBy動態查詢:根據某個欄位取得符合查詢條件的一筆記錄
  4. ##getField:取得某個欄位的值或多個欄位的索引陣列
  5. 區間查詢:取得符合查詢條件的區間記錄
  6. 統計查詢:取得符合查詢條件的統計資料
  7. 定位查詢:取得符合查詢條件的一條或多筆記錄
  8. 原生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[&#39;uid&#39;]}</td>
        <td>{$vo[&#39;username&#39;]}</td>
        <td>{$vo[&#39;email&#39;]}</td>
        <td>{$vo[&#39;regdate&#39;]|date=&#39;Y-m-d H:i&#39;,###}</td>
    </tr>
    </volist>
</table>

field() 查詢指定欄位

select() 方法預設是查詢所有欄位的數據,如果要查詢某個或某些字段,就需要使用filed() 方法。

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

$list = $Dao->field(&#39;username,email&#39;)->select();

使用查詢條件

使用ThinkPHP 連貫運算可以很方便的對資料查詢使用查詢條件。以下是一些簡單的查詢條件的範例。

where() 條件

……   
    // 构造查询条件
    $condition[&#39;username&#39;] = &#39;Admin&#39;;
    // 查询数据
    $list = $Dao->where($condition)->select();
……
上述查詢的就是 username='Admin' 這個條件的資料。關於 ThinkPHP where 條件更詳細資料,請參閱《ThinkPHP Where 條件》。

ORDER BY 排序

在查詢中使用ORDER BY 對資料進行排序:

……   
    // 查询数据
    $list = $Dao->order(&#39;uid DESC&#39;)->select();
……

這個範例就是資料依照ORDER BY uid DESC 進行查詢,而order() 方法中的參數意義跟SQL 語句中的意義完全一致。

LIMIT 限制

在查詢中使用LIMIT 限定資料傳回的記錄數:

……   
    // 查询数据
    $list = $Dao->limit(&#39;4,5&#39;)->select();
……

這個範例就是將第5-10 筆記錄取出,limit() 方法內的參數意義跟SQL 語句中的LIMIT 完全一致。

連貫操作

ThinkPHP 中允許將資料物件中的各個方法寫在一起操作,如:

$list = $Dao->order(&#39;uid DESC&#39;)->limit(&#39;4,5&#39;)->select();

更多ThinkPHP相關技術文章,請造訪

ThinkPHP教學欄位進行學習!

以上是ThinkPHP查詢資料select(findAll)方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn