ThinkPHP et PHP partagent quelques conseils sur les requêtes

小云云
Libérer: 2023-03-21 06:26:01
original
1167 Les gens l'ont consulté

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();
Copier après la connexion

2 : interroger les instructions qui suppriment les valeurs en double​​selon les conditions

M('propertytake')->group('batchnum')->where($w)->select();
Copier après la connexion

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;]; } }
Copier après la connexion

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为添加的值
Copier après la connexion

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

M()->startTrans(); //提交
 M()->commit(); //不提交
 M()->rollback();
Copier après la connexion

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

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

parent::memaddress($list[&#39;province&#39;],$list[&#39;city&#39;],$list[&#39;district&#39;]);//parent::是父的意思,memaddress是父类中的函数
Copier après la connexion

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();
Copier après la connexion

9 : thinkPHP augmente ou diminue la valeur du champ

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

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;
        }
      }
    }
  }
}
Copier après la connexion

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后的输出语句");
    }
  }
}
Copier après la connexion

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后的输出语句");
    }
  }
}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!