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

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 數據庫分頁 分頁是開發中常見的功能,我們來了解一下sp框架自帶的分頁功能。 **findAll()第四個參數** 首先我們可以簡單地通過設置findAll()查找方法的第四個參數$limit,來進行最簡便地分頁操作。 這里是入門教程例子: function actionIndex(){ // 接收頁碼參數 $page = (int)arg("p", 1); // 實例化一個guestbook的模型類 $guestbook = new Model("guestbook"); // 用findAll()方法查詢guestbook表的全部數據 $this->records = $guestbook->findAll(null, "createtime DESC", "*", array($page, 3)); // 輸出看看 // dump($this->records); $this->pager = $guestbook->page; // dump($this->pager); $this->display("guestbook.html"); } 我們可以看到分頁的數據通過$guestbook->page取到了。 ![頁碼數據](https://box.kancloud.cn/3420a517c30215d1b03369ffced187d4_201x370.jpg) 字段 | 含義 --- | --- total_count | 符合條件的總記錄數量 page_size | 每頁多少條件記錄 total_page | 總共有多少頁 first_page | 第一頁頁碼 prev_page | 上一頁頁碼 next_page | 下一頁頁碼 last_page | 最后一頁頁碼 current_page | 當前頁頁碼 all_pages | 全部頁碼數組 offset | 查詢位移,等于$limit的第一個參數 limit | 查詢條數,等$limit的第二個參數 模板里面的使用方法: <{if $pager}> <nav> <ul class="pagination pull-right"> <li> <a href="<{url c="main" a="index" p=$pager.prev_page}>" aria-label="Previous"> <span aria-hidden="true">&laquo;</span> </a> </li> <{foreach $pager.all_pages as $p}> <li<{if $p == $pager.current_page}> class="active"<{/if}>> <a href="<{url c="main" a="index" p=$p}>"><{$p}></a> </li> <{/foreach}> <li> <a href="<{url c="main" a="index" p=$pager.next_page}>" aria-label="Next"> <span aria-hidden="true">&raquo;</span> </a> </li> </ul> </nav> <{/if}> **分頁的第三個參數** $this->records = $guestbook->findAll(null, "createtime DESC", "*", array($page, 3, 10)); 這里注意一下分頁的第三個參數,也就是array($page, 3, 10)的10。 它的意義是“分頁顯示范圍”,會影響到上面分頁數據$guestbook->page中的all_pages項。 - 如果當此參數沒有設置時,all_pages是從1開始到最后一頁的頁碼。 - 如果設置了“分頁顯示范圍”參數后,all_pages只有這個顯示范圍那么多個分頁。比如說設置成10,那么all_pages就只有10個項。 - 分頁顯示范圍會根據當前頁碼,自動偏移到適合的頁碼上,讓當前頁碼盡量顯示在頁碼中間,并且也不會發生頁碼太多把頁碼撐開的情況。 **另一種分頁使用方法** 以上第一種分頁方法,僅能在findAll()方法上面實現。 如果需要執行SQL,如query()的復雜SQL查詢。那么就只能通過pager()方法自行計算分頁數據了。 pager()方法:產生分頁數據。 用法:pager($page, $pageSize = 10, $scope = 10, $total) 參數: - $page,當前頁碼 - $pageSize,每頁多少條紀錄,也就是分頁大小 - $scope,分頁顯示范圍 - $total,總紀錄數 這里可以看到,pager()方法比起前面的findAll()僅僅是多了個$total參數。因為像query()的復雜SQL來說,要自動取得符合條件的總數,是比較困難的事情。所以pager()方法把總數交給開發者自行輸入。 > 反過來說,findAll()在能力范圍內,是可以自動計算出總數的。 所以pager()方法的使用過程是: 1. 通過query()方法,查詢到紀錄總數$total。或者總數可以不確定,順便個100也行。 2. 然后調用pager()方法,輸入4個參數,得到返回的分頁數據。 3. 通過分頁數據中的offset和limit兩個值,可以構造成SQL語句的LIMIT語句,再給到SQL查詢。 4. 最終SQL查詢結果,和分頁數據一起輸入到模板內顯示。
                  <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>

                              哎呀哎呀视频在线观看