Home > Backend Development > PHP Tutorial > ThinkPHP and PHP share some query tips

ThinkPHP and PHP share some query tips

小云云
Release: 2023-03-21 06:26:01
Original
1224 people have browsed it

This article mainly shares with you some query tips in ThinkPHP and PHP, hoping to help everyone.

1: Related query and query all fields with the same field names

$goodsNum = $cartlistM->field('*,a.id as cid')->join('Goods as b on a.goods_id = b.id')->where(array('a.id' =>$_POST['cartID'] ))->find();
Copy after login

2: Query statements that remove duplicate values ​​​​according to conditions

M('propertytake')->group('batchnum')->where($w)->select();
Copy after login

3: Remove queries in loops Arrays that do not meet the conditions in 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[&#39;getmaxnum&#39;]||$temp_num>=$val[&#39;totaltree&#39;]||$val[&#39;totaltree&#39;]<=0) { unset($propertyArr[$key]); }else { $treeNum += $val[&#39;totaltree&#39;]; } }
Copy after login

4: Commonly used functions

a)fmod() 函数返回除法的浮点数余数。 
b)unset($saveData);销毁数组
c)strtotime(date(&#39;Y&#39;).&#39;-01-01&#39;);把时间变为时间戳的函数 
d)isMobile();判断当前用户是否手机
e)array_push($arr,$val);//$arr被添加的数组,$val为添加的值
Copy after login

5: ThinkPHP transaction processing example://Open transaction processing local data

M()->startTrans(); //提交
 M()->commit(); //不提交
 M()->rollback();
Copy after login

6 :json parsing json_decode();json encryption json_encode(value);

7: Call the parent class (inherited class)

parent::memaddress($list[&#39;province&#39;],$list[&#39;city&#39;],$list[&#39;district&#39;]);//parent::是父的意思,memaddress是父类中的函数
Copy after login

8: Filter query of query method

distanct(true)
例:
$data=M(&#39;user&#39;)->distanct(true)->field(&#39;score&#39;)->order(&#39;score asc&#39;)->select();
Copy after login

9: thinkPHP increases or decreases the field value

$newM->where(&#39;id=&#39;.$cid)->setInc(&#39;browser&#39;,1); //browser字段值自增1,setDec是自减
Copy after login

10: Various loops (for forech….) The difference between return, break and continue when jumping out of the loop
break is used to completely end a cycle Loop, jump out of the loop body. No matter what kind of loop, once a break is encountered in the loop body, the system will completely end the loop and start executing the code after the loop. break can not only end the loop in which it is located, but also end its outer loop. At this time, a label needs to be followed immediately after break. This label is used to identify an outer loop. A label in Java is an identifier followed by an English colon (:). And it must be placed before the loop statement to be effective.

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;
        }
      }
    }
  }
}
Copy after login

The function of continue is somewhat similar to break. The difference is that continue only terminates this cycle and then starts the next cycle. And break completely terminates the loop.

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后的输出语句");
    }
  }
}
Copy after login

The return keyword is not specifically used to jump out of a loop. The function of return is to end a method. Once a return statement is executed within the loop body, the return statement will end the method and the loop will naturally end. Different from continue and break, return directly ends the entire method, no matter how many levels of loops this return is in.

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后的输出语句");
    }
  }
}
Copy after login

Related recommendations:

How to query similar strings in php

##Summary of how to use php to query whether a mysql table exists

thinkPHP query method summary

The above is the detailed content of ThinkPHP and PHP share some query tips. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template