在實際應用中,我們可能會遇到很多查詢條件互相制約的情況,例如,搜尋某某學校,某某班裡姓李的同學。
我們例如學校的變數叫做 $school,班級叫做$class,學生姓名叫做$name,那麼,我們的拼接語句這樣寫
[php]view plain
copy
print?
$str_school = ' ';
$str_class = ' ';
$str_name = ' ';
$str_school = ' and school = '.$school; //別忘了and前面有小空格
$str_class = ' and class = '.$class;
$str_name = ' and name = "%'.$name.'%"'; //這裡要注意,模糊查詢的時候,%要加引號的
然後我們拼接一下
[php]view plain
copy
print?
$students = members::whereraw('1=1'.$str_school.$str_class.$str_name)->paginate(30); //拼接小技巧,在and前加 1=1,即使你拼接的字串都是空,也不要緊。
然後老師又提出新要求了,我們要按照同學們的期末成績總和排序,這時候就用到selectraw
[php]view plain
copy
print?
$students = members::selectraw('members.*','(yuwen+shuxue+yingyu) as sumscore')
->whereraw('1=1'.$str_school.$str_class.$str_name)
->orderby('sumscore','desc')->paginate(30);
然後老師又說,那你按照語數外分別給我排一下吧,這時不能每種情況都寫乙個查詢語句吧,這時要用到orderbyraw()
[php]view plain
copy
print?
$ord = '';
if($ord == 1)...
$students = members::selectraw('members.*','scores.*','(yuwen+shuxue+yingyu) as sumscore')
->whereraw('1=1'.$str_school.$str_class.$str_name)
->orderbyraw($ord)
->paginate(30);
構建靈活的介面
在設計支援各種螢幕尺寸的應用時,你可以在不同的布局配置中重複使用 fragment 以便根據相應的螢幕空間提供更出色的使用者體驗。例如,一次只顯示乙個 fragment 可能就很適合手機這種單窗格介面,但在平板電腦上,你可能需要設定並列的 fragment,因為平板電腦的螢幕尺寸較寬闊,可向使用者顯...
cJSON的構建和解析
一 cjson構建 define module num 3 int encode json cjson root cjson createobject 在根節點建立cjson物件 root cjson name list array cjson createarray 建立陣列物件 name lis...
線段樹的構建和查詢
本系列函式引數表示為 k 節點儲存區間 l,r 的和,查詢 修改的點為 x 查詢 修改的區間為 x,y 我們從線段樹的定義可以知道,k 節點儲存 ls k 和 rs k 兩節點的和。所以,我們採用遞迴構建線段樹。當區間的左端點與右端點重合時,即為葉子結點。非葉子結點在回溯中計算出。void buil...