首頁 > 後端開發 > php教程 > thinkphp實例教程之資料分頁

thinkphp實例教程之資料分頁

WBOY
發布: 2016-07-25 08:53:02
原創
1202 人瀏覽過
  1. create table `test` (
  2. `id` int(10) unsigned not null auto_increment,
  3. `name` char(100) not null,
  4. `content` varchar(300) not null,
  5. primary key (`id`)
  6. ) engine=myisam default charset=utf8 auto_increment=27 ;
  7. insert into `test` (`id`, `name`, `content`) values
  8. (19, '123', '123'),
  9. (20, '1231', '123123123'),
  10. (21, '123123', ' 123123123'),
  11. (26, '24', '123123'),
  12. (25, '321123', '321123'),
  13. (24, 'age', 'age'),
  14. (23, '123123', '123123'),
  15. (22, '213', '123');
複製代碼

2 ,新建一個thinkphp專案。新版tp已經內建了專案自動生成目錄功能。 在htdocs(也就是你的網站根目錄)下新建一個test資料夾,把thinkphp核心資料夾放進test根目錄,並在test根目錄新建檔案index.php,加入如下程式碼:

  1. // 定義thinkphp框架路徑
  2. define('think_path', './thinkphp');
  3. //定義項目名稱和路徑。這2句是重點。
  4. define('app_name', 'test');
  5. define('app_path', './test');
  6. // 載入框架入口檔案
  7. require(think_path."/thinkphp. php");
  8. //實例化一個網站應用實例
  9. $app = new app();
  10. //應用程式初始化
  11. $app->run();
複製程式碼

執行「http://localhost/test/index.php」.會看到thinkphp的歡迎頁。再打開你的test目錄看看,發現在根目錄下多了一個test資料夾,此時,你的專案目錄已經產生了。

開啟/test/test/conf/目錄,新建「config.php」 ,設定好資料庫連線。

  1. return array(
  2. 'db_type'=>'mysql',
  3. 'db_host'=>'localhost'=>'localhost'=>'localhost'=>'localhost'=>'localhost'=>'localhost'=>'localhost'=>'localhost'=>'localhost' ,
  4. 'db_name'=>'test', //新建立的資料庫名稱test
  5. 'db_user'=>'root', //資料庫使用者名稱
  6. 'db_pwd'=>'', //資料庫密碼
  7. 'db_port'=>'3306',
  8. );
  9. ?>
複製程式碼

複製程式碼

如果想開啟調試模式,請在數組中加入: "debug_mode"=>true
    3,基本頁輸入與輸出的實作。 1)開啟/test/test/lib/action/indexaction.class.php,找到:
  1. // 本類由系統自動生成,僅供測試用途
  2. class indexaction extends action{
  3. public function index(){
  4. header("content-type:text/html; charset=utf-8");
  5. echo "
    ^_^ hello,歡迎使用thinkphp
    ";
}
}?>

複製程式碼

由系統自動產生的indexaction類別中的index()函數是預設的首頁呼叫函數。你可以使用http://localhost/test/index.php或http://localhost/test/index.php/index來訪問他
    2)暫時不管他。首先,需要一個表單提交的頁面。開啟「/test/test/tpl/default/index/」,新建一個檔案add.html.
  1. 姓名:

內容:

提交:

複製程式碼

儲存後,輸入 http://localhost/test/index.php/index/add,你就能看到你新增的頁面了。其中,__url__(url要大寫)被轉換為對應位址/test/index.php/index/. 這裡簡單說一下模板和action之間的關係。每一個action,對應的模板是與之名字相同的html檔。例如index類別下的index(),對應default/index/index.html,而add.html,則明顯對應的是index類別下的add()。

可以在只有add.html而沒有對應的add()動作情況下,用訪問add()的形式(http://localhost/test/index.php/index/add)來存取add.html模板。 add.html模板下的佔位符會被替換成對應的資料。 (腳本學堂 編輯整理 bbs.it-home.org)

3)從form的「action=__url__/insert」可以看出,進行表單處理的動作是/test/index.php/index/insert,所以我們得新增insert動作來處理表單提交資料。在此之前,我們還有一件重要的事情要做,就是新增model檔。透過model檔案的建立,我們將能在insert動作中使用便利的方法來操作資料庫了 開啟/test/test/lib/model/資料夾,新檔案testmodel.class.php.開啟他,輸入並儲存下列程式碼

  1. class testmodel extends model {
  2. }
  3. ?>
複製程式碼
這是activerecord實作的基本文件。 命名規則是你資料庫中的表格後面加model。 例如要使用的表格是test,檔案命名必須是testmodel.class.php,而檔案下的類別命名必須是testmodel. 接著,回到indexaction.class.php文件,刪除原來的程式碼,加入:

  1. class indexaction extends action{
  2. //表單資料加入資料庫
  3. public function insert() {
  4. //實例化我們剛剛新建的testmodel.
  5. $test = d('test');
  6. if ($test->create()) {
  7. //儲存表單資料就這一步驟。 thinkphp已經全部做完了。
  8. $test->add();
  9. $this->redirect();
  10. }else{
  11. exit($test->geterror()。'[ 回傳 ]');
  12. }
  13. }
  14. }
複製程式碼
4)接下來,需要在indexaction類別中增加一個首頁預設顯示動作index()來呼叫表單資料。

  1. public function index() {
  2. //依舊是實例化我們新建的對應對應表名的model.這是我們進行快捷表操作的重要關鍵。
  3. $test = d('test');
  4. //熟悉這段程式碼麼?計算所有的行數
  5. $count = $test->count('','id');
  6. //每頁顯示的行數
  7. $listrows = '3';
  8. / /需要查詢哪些欄位
  9. $fields = 'id,name,content';
  10. //匯入分頁類別/thinkphp/lib/org/util/page.class.php
  11. import("org.util .page");
  12. //透過類別的建構子來改變page的參數。 $count為總數,$listrows為每一頁的顯示條目。
  13. $p = new page($count,$listrows);
  14. //設定查詢參數。具體請參閱“thinkphp/lib/think/core/model.class.php”1731行。
  15. $list = $test->findall('',$fields,'id desc',$p->firstrow.','.$p->listrows);
  16. //分頁類做好了。
  17. $page = $p->show();
  18. //範本輸出
  19. $this->assign('list',$list);
  20. $this->assign('page' ,$page);
  21. $this->display();
  22. }
複製程式碼
設定一個模板,在/test /test/tpl/default/index/下新index.html(因為預設對應了index()。 程式中可以直接assign.而不用去指定範本檔。當然,這是可以配置的。 )


  1. 填入
  2. //分頁顯示,這一行
  3. {$page}
  4. //資料顯示。下面的參數很快就會再進行詳解。它很好理解。
  5. 姓名:{$vo.name}

  6. 內容:{$vo.content} p>


複製程式碼
儲存,輸入http://localhost/test/

以上就是thinkphp製作分頁的方法與實例,希望對大家有幫助。


來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板