thinkphp中的多表關聯查詢

京洛塵發表於2017-09-29

        在進行後端管理系統的程式設計的時候一般會使用框架來進行頁面的快速搭建,我最近使用比較多的就是thinkphp框架,thinkphp框架的應用其實就是把前端和後端進行分割管

理,前端使用者登入查詢系統放在thinkphp中的home資料夾中進行管理,後端管理系統放在thinkphp中的admin資料夾中進行管理。對了,在使用thinkphp框架的時候是是要用

到mvc架構的,mvc架構就是model(資料模型)、view(檢視)、controller(控制器)的結構,這裡介面是由檢視來進行控制,控制器的作用就是管理檢視和控制器,詳細的

結構可以查詢thinkphp的文件進行學習。

        今天要說的就是在後端管理系統中遇到的資料庫表的關聯查詢應用。

         首先要說的就是在thinkphp中的查詢語句的應用,當然這裡並不是簡單的對一個資料表的查詢工作,而是進行多表之間的關聯查詢,這裡面進行資料的關聯有兩種方法join和table方法 。   

1、首先介紹的是table方法進行多表之間的關聯查詢

      最前面的M是thinkphp中的M模型,作用就是選擇資料庫中的資料表,table中選擇的是要關聯的哪些表,where是進行條件關聯,field的作用其實就是一個過濾作用,可以把你想要的或者有用的資訊輸出出來,這樣對錶進行關聯之後的結果就是剩下自己想要的資料結構了。

public function orderList(){
      $User=M("t_order");
      /*兩個表的關聯查詢得到等級值*/
      $userinfo = $User->table('t_order,t_commodity,t_user')->where('t_order.cname = t_commodity.cname and t_order.uname = t_user.uname ')->field('t_order_id,t_order.orderid,t_order.cname')->select();
      $this->assign("userInfo",$userinfo);
      $this->display("order-list");
}

2、join方法進行多表之間的關聯查詢

這裡面的表的關聯的區別就是join使用了on來進行表的關聯,剩下的部分其實就是一樣,where中是關聯的條件,field中是過濾的資訊(對接下來有用的資訊)

public  function getBanner(){
  $bannerid=1;
  $banner=M("banner_item");
  $result=$banner->join('image ON banner_item.img_id = image.id')->where("banner_item.banner_id=".$bannerid)->field("key_word,type,banner_id,url,from")->select();
  echo json_encode($result);
}



















相關文章