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