花了兩個多鐘在看 ThinkPHP 框架,不想太過深入的知道它的所有高深理論。單純想知道怎麼可以用起來,可以快捷的搭建一個網站。所以是有選擇的看,二個鐘後還是一頭霧水。於是決定改變學習策略,上官方論壇看其它高人寫的民間教程,果然比官方的通俗易懂多了。http://bbs.thinkphp.cn/forumdisplay.php?fid=6 (官方論壇)
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") 。再運行,這次終於把分頁搞掂出來了!