ThinkPHP查詢數據select(findAll)方法

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

立即學習PHP免費學習筆記(深入)”;

數據顯示模板

模板文件用于顯示剛才讀取的 User 表的數據。在學習階段,要不想使用模板,也可以直接使用 foreach 語法在 read() 操作內直接顯示讀取的數據。下面是模板相應的代碼片段,我們將讀取的數據在一個表格中顯示出來:


????

????????

????????

????????

????????

????

???? ????

????????

????????

????????

????????

????

????

ID 用戶名 電子郵件 注冊時間
{$vo[‘uid’]} {$vo[‘username’]} {$vo[’email’]} {$vo[‘regdate’]|date=’Y-m-d?H:i’,###}

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教程欄目進行學習!

? 版權聲明
THE END
喜歡就支持一下吧
點贊10 分享