|
Thinkphp 有很多函數通過參數拼湊的方式來組合SQL,如下:$list = $test->findall('',$fields,'id desc',$p->firstRow.','.$p->listRows);雖然這樣的拼湊的方式簡化了我們 sql 語句,但這也要求我們要記住很多函數方法,我并不想去記太多這樣的東西,覺得有時還不如直接寫一條完整的 sql 來得簡單。不知Thinkphp里有沒有直接寫 sql 后執行select 查詢的函數方法? 后來得知 Model.class.php 里面有一個方法 public function query($sql) 可以達到我想要的要求!在做分頁時就是用query方法跳過了使用 findall 方法實現了分頁功能。
看了例子和教程都是對單表操作的,可很多情況下我們要用到多表聯合操作。如多表聯合查詢,這個時候又應該怎樣做呢?Thinkphp 已經考慮到這個問題,已經很貼心的幫我們安排了關聯查詢和關聯操作。這些我都嫌棄過于麻煩!其實靈活運用這個框架里面的一些基本的函數方法,就可以達到關聯查詢和關聯操作。沒必要記憶一大堆亂七八糟的東西。
數據分頁是經常要用到的一項功能,TP這方面做得還算挺簡單。在網上找了一個教程( http://bbs.phpchina.com/thread-52813-1-1.html ),本以為參考這個教程寫出一個TP分頁程序應該很簡單的事。沒想到還是頗費了一番周折!
① 一開始是遇到 Fatal error: Class 'Think' not found in….. 的錯誤提示,在網上找了一通才知道是缺少了一個擴展類庫。后來在官方網站下載了相應的文件。
② 擴展類庫有了,沒提示錯誤了,可還是不能正確顯示出想要的結果!查看“頁面Trace信息”,原來是SQL有問題 SELECT COUNT() AS tp_count FROM `think_demo` LIMIT 1,分析得出教程的這句$count = $test->count('','id') 代碼有問題,改成 $count = $test->count('id') 終于看到的超鏈接了。盡信書不如無書!
③ 用教程的 $list = $test->findall('',$fields,'id desc',$p->firstRow.','.$p->listRows); 這句代碼我怎么也得不到想要的結果,我也不想去深入了解 findall 方法的各個參數的使用方法。于是改成 $list = $test->query("select $fields from think_demo order by id desc limit $p->firstRow,$p->listRows") 。再運行,這次終于把分頁搞掂出來了!
php技術:ThinkPHP php 框架學習筆記,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。