-
- create table `test` (
- `id` int(10) unsigned not null auto_increment,
- `name` char(100) not null,
- `content` varchar(300) not null,
- primary key (`id`)
- ) engine=myisam default charset=utf8 auto_increment=27 ;
- insert into `test` (`id`, `name`, `content`) values
- (19, '123', '123'),
- (20, '1231', '123123123'),
- (21, '123123', ' 123123123'),
- (26, '24', '123123'),
- (25, '321123', '321123'),
- (24, 'age', 'age'),
- (23, '123123', '123123'),
- (22, '213', '123');
複製代碼
2 ,新建一個thinkphp專案。新版tp已經內建了專案自動生成目錄功能。
在htdocs(也就是你的網站根目錄)下新建一個test資料夾,把thinkphp核心資料夾放進test根目錄,並在test根目錄新建檔案index.php,加入如下程式碼:
-
- // 定義thinkphp框架路徑
- define('think_path', './thinkphp');
- //定義項目名稱和路徑。這2句是重點。
- define('app_name', 'test');
- define('app_path', './test');
- // 載入框架入口檔案
- require(think_path."/thinkphp. php");
- //實例化一個網站應用實例
- $app = new app();
- //應用程式初始化
- $app->run();
-
複製程式碼
執行「http://localhost/test/index.php」.會看到thinkphp的歡迎頁。再打開你的test目錄看看,發現在根目錄下多了一個test資料夾,此時,你的專案目錄已經產生了。
開啟/test/test/conf/目錄,新建「config.php」 ,設定好資料庫連線。
-
-
return array(
- 'db_type'=>'mysql',
- 'db_host'=>'localhost'=>'localhost'=>'localhost'=>'localhost'=>'localhost'=>'localhost'=>'localhost'=>'localhost'=>'localhost' ,
- 'db_name'=>'test', //新建立的資料庫名稱test
- 'db_user'=>'root', //資料庫使用者名稱
- 'db_pwd'=>'', //資料庫密碼
- 'db_port'=>'3306',
- );
- ?>
-
複製程式碼
複製程式碼
如果想開啟調試模式,請在數組中加入:
"debug_mode"=>true
3,基本頁輸入與輸出的實作。
1)開啟/test/test/lib/action/indexaction.class.php,找到:
-
-
-
-
-
-
// 本類由系統自動生成,僅供測試用途
- class indexaction extends action{
- public function index(){
- header("content-type:text/html; charset=utf-8");
- echo "
^_^ hello,歡迎使用thinkphp
";
} } ?>
複製程式碼
複製程式碼儲存後,輸入 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.開啟他,輸入並儲存下列程式碼
-
-
class testmodel extends model {
- }
- ?>
-
複製程式碼
這是activerecord實作的基本文件。
命名規則是你資料庫中的表格後面加model。
例如要使用的表格是test,檔案命名必須是testmodel.class.php,而檔案下的類別命名必須是testmodel.
接著,回到indexaction.class.php文件,刪除原來的程式碼,加入:
- class indexaction extends action{
- //表單資料加入資料庫
- public function insert() {
- //實例化我們剛剛新建的testmodel.
- $test = d('test');
- if ($test->create()) {
- //儲存表單資料就這一步驟。 thinkphp已經全部做完了。
- $test->add();
- $this->redirect();
- }else{
- exit($test->geterror()。'[ 回傳 ]');
- }
- }
- }
-
複製程式碼
4)接下來,需要在indexaction類別中增加一個首頁預設顯示動作index()來呼叫表單資料。
- public function index() {
- //依舊是實例化我們新建的對應對應表名的model.這是我們進行快捷表操作的重要關鍵。
- $test = d('test');
- //熟悉這段程式碼麼?計算所有的行數
- $count = $test->count('','id');
- //每頁顯示的行數
- $listrows = '3';
- / /需要查詢哪些欄位
- $fields = 'id,name,content';
- //匯入分頁類別/thinkphp/lib/org/util/page.class.php
- import("org.util .page");
- //透過類別的建構子來改變page的參數。 $count為總數,$listrows為每一頁的顯示條目。
- $p = new page($count,$listrows);
- //設定查詢參數。具體請參閱“thinkphp/lib/think/core/model.class.php”1731行。
- $list = $test->findall('',$fields,'id desc',$p->firstrow.','.$p->listrows);
- //分頁類做好了。
- $page = $p->show();
- //範本輸出
- $this->assign('list',$list);
- $this->assign('page' ,$page);
- $this->display();
- }
-
-
複製程式碼
設定一個模板,在/test /test/tpl/default/index/下新index.html(因為預設對應了index()。
程式中可以直接assign.而不用去指定範本檔。當然,這是可以配置的。 )
-
填入
- //分頁顯示,這一行
- {$page}
- //資料顯示。下面的參數很快就會再進行詳解。它很好理解。
姓名:{$vo.name}
內容:{$vo.content} p>
-
-
複製程式碼
儲存,輸入http://localhost/test/
以上就是thinkphp製作分頁的方法與實例,希望對大家有幫助。
|