本文主要和大家分享ThinkPHP和PHP一些查詢小技巧,希望能幫助大家。
1:關聯查詢並有的欄位名稱相同查詢全部欄位
$goodsNum = $cartlistM->field('*,a.id as cid')->join('Goods as b on a.goods_id = b.id')->where(array('a.id' =>$_POST['cartID'] ))->find();
2:查詢按條件去處重複值的語句
M('propertytake')->group('batchnum')->where($w)->select();
3:在迴圈中移除查詢selsect()中不符合條件的陣列
foreach ($propertyArr as $key=>$val) { $w['mid'] = $this->mid; $w['property_id'] = $val['id']; //查询期数是否已领满9年 $hasGetYear = count(M('propertytake')->group('batchnum')->where($w)->select());//查询当前资产在本期已收成的消耗资源数量 $w['batchnum'] = $setBatch; $temp_num = M('propertytake')->where($w)->sum('nums'); if(empty($temp_num)) { $temp_num = 0; }if ($hasGetYear >= $goodsArr['getmaxnum']||$temp_num>=$val['totaltree']||$val['totaltree']<=0) { unset($propertyArr[$key]); }else { $treeNum += $val['totaltree']; } }
4:常用函數
a)fmod() 函数返回除法的浮点数余数。 b)unset($saveData);销毁数组 c)strtotime(date('Y').'-01-01');把时间变为时间戳的函数 d)isMobile();判断当前用户是否手机 e)array_push($arr,$val);//$arr被添加的数组,$val为添加的值
5:thinkPHP的事務處理例://開啟事務處理本地資料
M()->startTrans(); //提交 M()->commit(); //不提交 M()->rollback();
6 :json解析json_decode();json加密json_encode(value);
7:呼叫父類別(被繼承類別)
parent::memaddress($list['province'],$list['city'],$list['district']);//parent::是父的意思,memaddress是父类中的函数
8:查詢方法過濾查詢方法過濾查詢##
distanct(true) 例: $data=M('user')->distanct(true)->field('score')->order('score asc')->select();
$newM->where('id='.$cid)->setInc('browser',1); //browser字段值自增1,setDec是自减
break用於完全結束一個循環,跳出循環體。不管是哪一種循環,一旦在循環體中遇到break,系統就會完全結束循環,開始執行循環之後的程式碼。 break不僅可以結束其所在的循環,還可結束其外層循環。此時需要在break後面跟著一個標籤,這個標籤用來標識一個外層循環。 Java中的標籤就是一個緊跟著英文冒號(:)的識別碼。而且它必須放在循環語句之前才有作用。
public class BreakTest2 { public static void main(String[] args){ // 外层循环,outer作为标识符 outer: for (int i = 0 ; i < 5 ; i++ ){ // 内层循环 for (int j = 0; j < 3 ; j++ ){ System.out.println("i的值为:" + i + " j的值为:" + j); if (j == 1){ // 跳出outer标签所标识的循环。 break outer; } } } } }
public class ContinueTest { public static void main(String[] args){// 一个简单的for循环 for (int i = 0; i < 3 ; i++ ){ System.out.println("i的值是" + i); if (i == 1){ // 忽略本次循环的剩下语句 continue; } System.out.println("continue后的输出语句"); } } }
public class ReturnTest { public static void main(String[] args){ // 一个简单的for循环 for (int i = 0; i < 3 ; i++ ){ System.out.println("i的值是" + i); if (i == 1){ return; } System.out.println("return后的输出语句"); } } }
以上是ThinkPHP和PHP一些查詢小技巧分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!