Maison  >  Article  >  développement back-end  >  ThinkPHP et PHP partagent quelques conseils sur les requêtes

ThinkPHP et PHP partagent quelques conseils sur les requêtes

小云云
小云云original
2018-03-09 15:06:531199parcourir

Cet article partage principalement avec vous quelques astuces de requêtes en ThinkPHP et PHP, j'espère qu'il pourra vous aider.

1 : interroger les requêtes associées et interroger tous les champs portant les mêmes noms de champs

$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 : interroger les instructions qui suppriment les valeurs en double​​selon les conditions

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

3 : Dans Supprimer les tableaux qui ne remplissent pas les conditions de la requête, sélectionnez() dans la boucle

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;]; } }

4 : Fonctions couramment utilisées

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

5 : transaction thinkPHP exemple de traitement://activer le traitement transactionnel des données locales

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

6 : analyse json json_decode();cryptage json json_encode(value);

7 : appel de la classe parent (classe héritée )

parent::memaddress($list['province'],$list['city'],$list['district']);//parent::是父的意思,memaddress是父类中的函数

8 : Requête de filtre de méthode de requête

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

9 : thinkPHP augmente ou diminue la valeur du champ

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

10 : Diverses boucles (pour forech ….) Sortir de la boucle return , la différence entre break et continue
break est utilisée pour terminer complètement une boucle et sauter hors du corps de la boucle. Quel que soit le type de boucle, une fois qu'une rupture est rencontrée dans le corps de la boucle, le système mettra complètement fin à la boucle et commencera à exécuter le code après la boucle. break peut non seulement terminer la boucle dans laquelle il se trouve, mais également terminer sa boucle externe. À ce stade, une étiquette doit être suivie immédiatement après la rupture. Cette étiquette est utilisée pour identifier une boucle externe. Une étiquette en Java est un identifiant suivi de deux points anglais (:). Et il doit être placé avant l'instruction de boucle pour être efficace.

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;
        }
      }
    }
  }
}

La fonction de continue est quelque peu similaire à break. La différence est que continue termine uniquement ce cycle et démarre ensuite le cycle suivant. Et break termine complètement la boucle.

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

Le mot-clé return n'est pas spécifiquement utilisé pour sortir d'une boucle. La fonction de return est de terminer une méthode. Une fois qu'une instruction return est exécutée dans le corps de la boucle, l'instruction return mettra fin à la méthode et la boucle se terminera naturellement. Différent de continue et break, return termine directement toute la méthode, quel que soit le nombre de niveaux de boucles dans lesquels se trouve ce return.

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

Recommandations associées :

Comment interroger des chaînes similaires en php

Un résumé de la façon d'utiliser php pour demander si une table mysql existe

Résumé des méthodes de requête thinkPHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn