ThinkPHP und PHP geben einige Abfragetipps weiter

小云云
Freigeben: 2023-03-21 06:26:01
Original
1206 Leute haben es durchsucht

Dieser Artikel gibt Ihnen hauptsächlich einige Abfragetipps in ThinkPHP und PHP, ich hoffe, er kann Ihnen helfen.

1: Verwandte Abfragen abfragen und alle Felder mit denselben Feldnamen abfragen

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

2: Abfrageanweisungen, die doppelte Werte gemäß Bedingungen entfernen

M('propertytake')->group('batchnum')->where($w)->select();
Nach dem Login kopieren

3: In Arrays entfernen, die die Bedingungen in der Abfrage select() in der Schleife nicht erfüllen

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;]; } }
Nach dem Login kopieren

4: Häufig verwendete Funktionen

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

5: thinkPHP-Transaktion Verarbeitungsbeispiel: Transaktionsverarbeitung lokaler Daten aktivieren

M()->startTrans(); //提交
 M()->commit(); //不提交
 M()->rollback();
Nach dem Login kopieren

6: JSON-Analyse json_decode();JSON-Verschlüsselung json_encode(value);

7: Aufrufen der übergeordneten Klasse (geerbte Klasse). )

parent::memaddress($list[&#39;province&#39;],$list[&#39;city&#39;],$list[&#39;district&#39;]);//parent::是父的意思,memaddress是父类中的函数
Nach dem Login kopieren

8 :Abfragemethodenfilterabfrage

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

9: thinkPHP erhöht oder verringert den Feldwert

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

10: Verschiedene Schleifen (für forech ….) Aus der Schleife springen return Der Unterschied zwischen break und continue
break wird verwendet, um eine Schleife vollständig zu beenden und aus dem Schleifenkörper zu springen. Unabhängig von der Art der Schleife beendet das System die Schleife vollständig, sobald eine Unterbrechung im Schleifenkörper auftritt, und beginnt mit der Ausführung des Codes nach der Schleife. break kann nicht nur die Schleife beenden, in der es sich befindet, sondern auch die äußere Schleife. Zu diesem Zeitpunkt muss unmittelbar nach der Unterbrechung eine Beschriftung folgen. Diese Beschriftung wird verwendet, um eine äußere Schleife zu identifizieren. Ein Label in Java ist ein Bezeichner, gefolgt von einem englischen Doppelpunkt (:). Und es muss vor der Schleifenanweisung platziert werden, um wirksam zu sein.

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;
        }
      }
    }
  }
}
Nach dem Login kopieren

Die Funktion von continue ähnelt in gewisser Weise der von break. Der Unterschied besteht darin, dass continue nur diesen Zyklus beendet und dann den nächsten Zyklus startet. Und break beendet die Schleife vollständig.

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

Das Schlüsselwort return wird nicht speziell zum Ausbrechen aus einer Schleife verwendet. Die Funktion von return besteht darin, eine Methode zu beenden. Sobald eine Return-Anweisung innerhalb des Schleifenkörpers ausgeführt wird, beendet die Return-Anweisung die Methode und die Schleife wird auf natürliche Weise beendet. Anders als continue und break beendet return direkt die gesamte Methode, unabhängig davon, in wie vielen Schleifenebenen sich diese Rückkehr befindet.

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

Verwandte Empfehlungen:

So fragen Sie ähnliche Zeichenfolgen in PHP ab

Eine Zusammenfassung, wie Sie mit PHP abfragen, ob Es existiert eine MySQL-Tabelle

Zusammenfassung der thinkPHP-Abfragemethoden

Das obige ist der detaillierte Inhalt vonThinkPHP und PHP geben einige Abfragetipps weiter. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage