ホームページ > バックエンド開発 > PHPチュートリアル > thinkphp サンプル チュートリアル データ ページング

thinkphp サンプル チュートリアル データ ページング

WBOY
リリース: 2016-07-25 08:53:02
オリジナル
1202 人が閲覧しました
  1. テーブル`test`を作成します(
  2. `id` int(10) unsigned not null auto_increment,
  3. `name` char(100) not null,
  4. `content` varchar(300) not null,
  5. 主キー( `id`)
  6. ) Engine=myisam デフォルト charset=utf8 auto_increment=27 ;
  7. `test` (`id`, `name`, `content`) 値に挿入
  8. (19, '123', '123'),
  9. (20, '1231', '123123123')、
  10. (21, '123123', '123123123')、
  11. (26, '24', '123123')、
  12. (25, '321123', '321123' ),
  13. (24, '年齢', '年齢'),
  14. (23, '123123', '123123'),
  15. (22, '213', '123');
コードをコピー

2 、新しい thinkphp プロジェクトを作成します。新しいバージョンの tp には、プロジェクト ディレクトリの自動生成機能が組み込まれています。 htdocs (Web サイトのルート ディレクトリ) の下に新しいテスト フォルダーを作成し、thinkphp コア フォルダーをテスト ルート ディレクトリに配置し、テスト ルート ディレクトリに新しいファイル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. //例 Web サイトのアプリケーション インスタンスを作成します
  9. $app = new app();
  10. //アプリケーションの初期化
  11. $app->run();
コードをコピーします

「http://localhost/test/」を実行しますindex .php"。thinkphp のようこそページが表示されます。テスト ディレクトリを再度開くと、ルート ディレクトリに追加のテスト フォルダーが作成されていることがわかります。

/test/test/conf/ ディレクトリを開き、新しい「config.php」を作成し、データベース接続を設定します。

  1. return array(
  2. 'db_type'=>'mysql',
  3. 'db_host'=>'localhost',
  4. 'db_name'=>'test', //Newデータベース名 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 functionindex(){
  4. header("content-type:text/ html; charset =utf-8");
  5. echo "
    ^_^ こんにちは、ようこそthinkphp < ;/div>";
  6. }
  7. }
  8. ?>
コードをコピー

システムによって自動的に生成される Indexaction クラスの Index() 関数は、デフォルトのホームページ呼び出し関数です。 http://localhost/test/index.php または http://localhost/test/index.php/index を使用してアクセスできます

2) 今のところ彼を無視してください。まず、フォーム送信ページが必要です。 「/test/test/tpl/default/index/」を開き、新しいファイル add.html を作成します。

  1. 名前:

  2. コンテンツ:

  3. 送信:< ;/p>

コードをコピー

保存後、http://localhost/test/index.php/index/add と入力すると、新しいページが表示されます。このうち、__url__ (URL は大文字にする必要があります) は、対応するアドレス /test/index.php/index/ に変換されます。 ここでは、テンプレートとアクションの関係について簡単に説明します。各アクションに対応するテンプレートは、同じ名前の HTML ファイルです。たとえば、インデックス クラスのindex()はdefault/index/index.htmlに対応し、add.htmlはインデックス クラスのadd()に対応することは明らかです。

add.html のみがあり、対応する add() アクションがない場合は、add() (http://localhost/test/index.php/index/add) にアクセスすることで add.html テンプレートにアクセスできます。 add.html テンプレートの下のプレースホルダーは、対応するデータに置き換えられます。 (Scripting School bbs.it-home.org によって編集および編集されました)

3) フォームの「action=__url__/insert」から、フォーム処理のアクションが /test/index.php/index/insert であることがわかります。そのため、フォームを処理するには新しい挿入アクションを追加する必要があります。提出データ。その前に、新しいモデル ファイルを追加するという重要な作業がまだ 1 つあります。モデル ファイルを作成すると、挿入アクションでデータベースを操作するための便利なメソッドを使用できるようになります。 /test/test/lib/model/ フォルダーを開き、新しいファイル testmodel.class.php を作成し、それを開いて次のコードを入力して保存します。

  1. class testmodel extends model {
  2. }
  3. ?>
コードをコピー

これは、activerecord 実装の基本ファイルです。 命名規則は、データベース内のテーブルの後にモデルを追加することです。 たとえば、使用するテーブルは test、ファイル名は testmodel.class.php、ファイル内のクラス名は testmodel である必要があります。 次に、indexaction.class.php ファイルに戻り、元のコードを削除して、次のコードを追加します。

  1. class Indexaction extends action{
  2. //データベースにフォームデータを追加
  3. public function insert() {
  4. //作成したばかりのテストモデルをインスタンス化します。
  5. $test = d('test');
  6. if ($test->create()) {
  7. //これはフォームデータを保存するステップです。 thinkphp がすべてを行ってくれました。
  8. $test->add();
  9. $this->redirect();
  10. }else{
  11. exit($test->geterror().'[ Return ]');
  12. }
  13. }
  14. }
コードをコピー

4) 次に、ホームページのデフォルト表示アクション Index() を Indexaction クラスに追加して、フォームデータ。

  1. public function Index() {
  2. //対応するテーブル名に対応する新しいモデルをインスタンス化するのはまだ先です。これは、ショートカット テーブル操作を実行するための重要なキーです。
  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. //クラスのコンストラクターを介して、ページのパラメーターを変更します。 $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に対応しているため)デフォルトでは () 。 テンプレートファイルを指定せずに、プログラム内で直接割り当てることもできます。もちろん、これは設定可能です。 )


  1. 記入
  2. //ページ表示、この行

  3. {$page}
  4. //データ表示。次のパラメータについては後ほど詳しく説明します。わかりやすいですね。
  5. 名前: {$vo.name}

  6. 内容: {$vo.content}


コードをコピー

保存し、http://localhost/test/

と入力します

以上はthinkphpでページネーションを作成する方法と例です。皆さんの参考になれば幸いです。



ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート