<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ## column 方法 ### 1、功能:獲取符合條件記錄中各列字段所組成的數組 >[info] 注意有以下幾個關鍵字: > 1. 可以是一條記錄,也可以多條記錄,這與value方法不同的; > 2. 返回值是一個數組,而非單值,這與value方法也不相同; > 3. 可以返回一列數據,也可返回多列數組,返回多列時以二維數組展示。 ### 2、源碼:/thinkphp/library/think/db/Query.php ![](https://box.kancloud.cn/1cfdb8f2b90ba3ab0fd3675fa7637332_1304x842.png) ### 3、參數與返回值: #### 1. 參數 | 序號 | 參數 | 說明 | | --- | --- | --- | | 1 | 字段名 | 表中存在的字段名稱 | | 2 | 鍵名 | 設置數組元素的鍵名,默認為參數中的第一個字段名 | #### 2. 返回值 | 序號 | 參數 | 說明 | | --- | --- | --- | | 1 | 一維數組 | 當只有$field字段參數,且只有一個字段時,鍵名是從0開始索引數組 | | 2 | 二維數組 | 當字段參數參數二個時,結果自動轉為二維數組,當設置了第二個參數$key時,可指定數組元素鍵名 | ### 4、語法: ~~~ Db::table( '數據表名' ) -> where( 查詢條件 ) -> column( '字段列表', '數組鍵名' ) ; ~~~ >[success] * 當字段列表不于二個字段時,結果是一維數組,鍵名為第一個字段 > * 當字段列表大于二個字段時,結果是二維數組,鍵名如不指定則為首字段 > * 如指定的鍵名,不在字段列表中,將做為首字段插入到字段列表中。 * * * * * ### 5、演示實例: #### 任務1:查詢id > 1020 記錄中的name字段值 * 表中數據,紅框內的是我們要操作的數據 ![](https://box.kancloud.cn/cc02c1c036fc3d16dfb31268c1843716_781x382.png) >[info] >1. 參數只傳入一個字段值時,返回一維數組; >2. 因為沒有傳入指定鍵名,該數組的鍵名為默認的從0開始的索引數組 (索引數組:由鍵名從0開始的連續正整數構成的數組) * Index.php 控制器文件: ~~~ <?php namespace app\index\controller; //導入數據庫類 use think\Db; class Index { public function index() { //1.返回name字段值數組的索引數組,鍵名為從0開始的整型連續數字 $result = Db::table('tp5_staff') //設置當前數據表tp5_staff ->where('id > 1020') // 設置查詢條件 id > 1020 // 獲取滿足id>1020的所有記錄的name字段值,打包到一維索引數組返回 ->column('name'); //查詢查詢結果 dump($result); } } ~~~ * 運行結果: ~~~ //結果為一維數組,鍵名為默認的數定索引,鍵值是name字段值 array(5) { [0] => string(6) "夢姑" [1] => string(9) "段王爺" [2] => string(9) "魯大師" [3] => string(9) "程序員" [4] => string(6) "方方" } ~~~ * * * * * #### 任務2:查詢id > 1020 記錄中的name, age字段值 >[info] >1. 參數只傳入二個字段名,并不設置鍵名時,返回一維數組; >2. 因為沒有傳入指定鍵名,該數組的鍵名為參數字段列表中的第一個 >3. 返回數組類型由做鍵名的字段值決定,數值型就是索引數組,字符或日期型就是關聯數組 >4. 本例中,字段列表是:name,age,所以數組元素格式為:['name'] => age * Index.php 控制器文件: ~~~ <?php namespace app\index\controller; //導入數據庫類 use think\Db; class Index { public function index() { //1.返回name字段值數組的索引數組,鍵名為從0開始的整型連續數字 $result = Db::table('tp5_staff') //設置當前數據表tp5_staff ->where('id > 1020') // 設置查詢條件 id > 1020 // 獲取滿足id>1020的所有記錄的name,age字段值,打包到一維數組返回 ->column('name,age'); //查詢查詢結果 dump($result); } } ~~~ * 運行結果: ~~~ array(5) { // 第一個字段名自動轉為鍵名,第二個字段為值 ["夢姑"] => int(18) ["段王爺"] => int(90) ["魯大師"] => int(60) ["程序員"] => int(42) ["方方"] => int(90) } ~~~ * 現在我們調整一下colume參數中的字段順序 ~~~ //將age 調整到 name 的前面 ->column('age,name'); ~~~ * 現在查詢結果是: ~~~ //可以看到結果,恰好與上面是相反的,鍵名與值交換了位置 array(4) { [18] => string(6) "夢姑" [90] => string(6) "方方" [60] => string(9) "魯大師" [42] => string(9) "程序員" } ~~~ * * * * * #### 任務3:查詢id > 1020 記錄中的name, age,hiredate字段值 >[info] 按上面的邏輯,我們知道,二個字段時,其中一個字段值以鍵名方式出現在結果中,那么三個字段時,怎么辦呢? >解決方案:<span style="color:red">用二維數組表示</span><br/> >那么問題來了?> 哪個字段應該是二維數組中,各個元素的鍵名呢? > 是和前面案例一樣,取第一個字段名嗎?我們試一下,就知道了~~~ * 現在的Index.php 控制器代碼如下 : ~~~ <?php namespace app\index\controller; //導入數據庫類 use think\Db; class Index { public function index() { //1.返回name字段值數組的索引數組,鍵名為從0開始的整型連續數字 $result = Db::table('tp5_staff') //設置當前數據表tp5_staff ->where('id > 1020') // 設置查詢條件 id > 1020 // 獲取滿足id>1020的所有記錄的name,age字段值,打包到一維數組返回 ->column('name,age,hiredate'); //查詢查詢結果 dump($result); } } ~~~ * 運行結果如下: ~~~ // 二維數組中,每個數組元素的鍵名,就是字段列表中的第一個字段名 array(5) { ["夢姑"] => array(3) { ["name"] => string(6) "夢姑" ["age"] => int(18) ["hiredate"] => string(10) "2012-10-10" } ["段王爺"] => array(3) { ["name"] => string(9) "段王爺" ["age"] => int(90) ["hiredate"] => string(10) "2015-12-31" } ["魯大師"] => array(3) { ["name"] => string(9) "魯大師" ["age"] => int(60) ["hiredate"] => string(10) "2012-09-09" } ["程序員"] => array(3) { ["name"] => string(9) "程序員" ["age"] => int(42) ["hiredate"] => string(10) "2008-12-29" } ["方方"] => array(3) { ["name"] => string(6) "方方" ["age"] => int(90) ["hiredate"] => string(10) "2015-12-31" } } ~~~ * * * * * #### 任務4:查詢id > 1020 記錄中的name, age字段值,指定鍵名為:age >[info] 我們前面一直在用默認值來設定數組的鍵名,其實就是可以設定的。 >本例中,我們人為設定為:age * Index.php 控制器文件: ~~~ <?php namespace app\index\controller; //導入數據庫類 use think\Db; class Index { public function index() { //1.返回name字段值數組的索引數組,鍵名為從0開始的整型連續數字 $result = Db::table('tp5_staff') //設置當前數據表tp5_staff ->where('id > 1020') // 設置查詢條件 id > 1020 // 獲取滿足id>1020的所有記錄的name,age字段值,打包到一維數組返回 ->column('name,age','age'); //查詢查詢結果 dump($result); } } ~~~ * 運行結果: ~~~ //這和前面,通過人為調整字段順序,設定鍵名的結果是一樣的 //顯然,這種試更加的靈活 array(4) { [18] => string(6) "夢姑" [90] => string(6) "方方" [60] => string(9) "魯大師" [42] => string(9) "程序員" } ~~~ * * * * * >[warning] 我們再大膽猜想一下,能不能指定一個不在字段列表中出現的字段,當做鍵名呢?例如,當前字段列表是:name,age,而我們指定鍵名為:hiredate,是否可行?請看下面案例: #### 任務5:查詢id > 1020 記錄中的name, age字段值,指定鍵名為:hiredate * Index.php 控制器文件: ~~~ <?php namespace app\index\controller; //導入數據庫類 use think\Db; class Index { public function index() { //1.返回name字段值數組的索引數組,鍵名為從0開始的整型連續數字 $result = Db::table('tp5_staff') //設置當前數據表tp5_staff ->where('id > 1020') // 設置查詢條件 id > 1020 // 獲取滿足id>1020的所有記錄的name,age字段值,打包到一維數組返回 ->column('name,age','hiredate'); //查詢查詢結果 dump($result); } } ~~~ * 查詢結果如下(神奇一幕出現了): >[success] * 做為鍵名的hiredate字段,原本不在字段列表中,現在卻自動被添加到字段列表中并顯示出來了。 > * 所以,當前的字段列表變成了: hiredate,name,age,因為你指定的鍵名是hiredate,所以這個hiredate字段,也理所當然的排到字段列中的第一位 ~~~ //指定的鍵名,自動插入到當前字前列表的第一位 //因為超過了二個字段,因為結果是二維數組 array(4) { ["2012-10-10"] => array(3) { ["hiredate"] => string(10) "2012-10-10" ["name"] => string(6) "夢姑" ["age"] => int(18) } ["2015-12-31"] => array(3) { ["hiredate"] => string(10) "2015-12-31" ["name"] => string(6) "方方" ["age"] => int(90) } ["2012-09-09"] => array(3) { ["hiredate"] => string(10) "2012-09-09" ["name"] => string(9) "魯大師" ["age"] => int(60) } ["2008-12-29"] => array(3) { ["hiredate"] => string(10) "2008-12-29" ["name"] => string(9) "程序員" ["age"] => int(42) } } ~~~ ### 6、總結: >[info] column 方法,將查詢結果以一種很靈活的方式返回,讓程序員有了更大的發揮空間處理數據,一定要熟練掌握它
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看