検索

ThinkPHP データページング

Jun 08, 2018 pm 03:28 PM
thinkphpチュートリアルの例クイックスタートデータページング

この記事では、主に ThinkPHP クイック スタート チュートリアルのデータ ページングの実装プロセスを紹介します。必要な方は参照してください。

データ ページングは​​、Web プログラミングで最もよく使用される関数の 1 つかもしれません。 ThinkPHP はページング機能を非常に簡単に実装します。これは、いくつかのパラメータを定義するだけで実現できます。そして拡張も非常に簡単です。

ThinkPHP のページング プログラムを最初から実装してみましょう。

1. まず、ページング テスト用のデータベースを作成する必要があります。test.sql コードは次のとおりです。

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 (Web サイトのルート ディレクトリ) の下に新しいテスト フォルダーを作成し、THINKPHP コア フォルダーをテスト ルート ディレクトリに配置し、テスト ルート ディレクトリに新しいファイル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/conf/ ディレクトリを開き、新しい「config.php」を作成し、データベース接続を構成します。

<?php
return array(
&#39;DB_TYPE&#39;=>&#39;mysql&#39;,
&#39;DB_HOST&#39;=>&#39;localhost&#39;,
&#39;DB_NAME&#39;=>&#39;test&#39;, //新建的数据库名test
&#39;DB_USER&#39;=>&#39;root&#39;, //数据库用户名
&#39;DB_PWD&#39;=>&#39;&#39;, //数据库密码
&#39;DB_PORT&#39;=>&#39;3306&#39;,
);
?>

デバッグ モードをオンにしたい場合は、

"debug_mode"=>true

を配列 3. 基本的なページ入出力の実装。
(1) /test/test/lib/action/IndexAction.class.php を開くと、次のコードが見つかります。

<?php
// 本类由系统自动生成,仅供测试用途
class IndexAction extends Action{
public function index(){
header("Content-Type:text/html; charset=utf-8");
echo "<p style=&#39;font-weight:normal;color:blue;float:left;width:345px;text-align:center;border:1px solid silver;background:#E8EFFF;padding:8px;font-size:14px;font-family:Tahoma&#39;>^_^ Hello,欢迎使用<span style=&#39;font-weight:bold;color:red&#39;>ThinkPHP</span></p>";
}
}
?>

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

(2) ここでは無視します。まず、フォーム送信ページが必要です。 「/test/test/tpl/default/index/」を開き、新しいファイル add.html を作成します。

<form method="post" action="__URL__/insert">
<p>姓名:<input name="name" type="text" ></p>
<p>内容:<input name="content" type="text"></p>
<p>提交:<input type="submit" value="submit"></p>
</form>

保存後、「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 にアクセスできます。 。 add.html テンプレートの下のプレースホルダーは、対応するデータに置き換えられます。効果は以下の通りです。

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

<?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(&#39;Test&#39;);
if ($test->create()) {
//保存表单数据就这一步。thinkphp已经全部做完了。
$test->add();
$this->redirect();
}else{
exit($test->getError()。&#39;[ <A HREF="javascript:history.back()">返 回</A> ]&#39;);
}
}
}

(4) 次に、フォーム データを呼び出すために、ホームページのデフォルト表示アクション Index() を IndexAction クラスに追加する必要があります。

public function index() {
//依旧是实例化我们新建的对应相应表名的model.这是我们进行快捷表操作的重要关键。
$test = D(&#39;Test&#39;);
//熟悉这段代码么?计算所有的行数
$count = $test->count(&#39;&#39;,&#39;id&#39;);
//每页显示的行数
$listRows = &#39;3&#39;;
//需要查询哪些字段
$fields = &#39;id,name,content&#39;;
//导入分页类 /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(&#39;&#39;,$fields,&#39;id desc&#39;,$p->firstRow.&#39;,&#39;.$p->listRows);
//分页类做好了。
$page = $p->show();
//模板输出
$this->assign(&#39;list&#39;,$list);
$this->assign(&#39;page&#39;,$page);
$this->display();
}

テンプレートを設定します。 /test/test/tpl/default/index/配下にindex.htmlを新規作成します(デフォルトではindex()に相当するため。そのため、テンプレートファイルを指定せずにプログラム内で直接代入することも可能です。もちろんこれは可能です) )

<hr><a href="__URL__/add">填写</a>
//分页显示,这一行
<hr>{$page}<hr>
//数据显示。下面的参数很快会再进行详解。它很好理解。
<volist name="list" id="vo">
<p>姓名:{$vo.name}</p>
<p>内容:{$vo.content}</p>
<hr>
</volist>

彼を救ってください。次に、「http://localhost/test/

おめでとうございます」と入力します。 thinkphp を使用してページネーションを作成する方法を学習しました。

上記がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトに注目してください。

関連する推奨事項:

Web ページのページング添え字生成コードを実装するための PHP バックエンド メソッド

thinkPHP3.2 実装についてページング スタイルをカスタマイズする方法

JS イベント ページング クラスcustomPage.class.php を thinkPHP フレームワークに追加する場合の分析

#

以上がThinkPHP データページングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPはユーザーのセッションをどのように識別しますか?PHPはユーザーのセッションをどのように識別しますか?May 01, 2025 am 12:23 AM

phpidentifiesauser'ssessionsingsinssessionCookiesIds.1)whensession_start()iscalled、phpgeneratesauniquesidstoredsored incoookienadphpsessidontheuser'sbrowser.2)thisidallowsphptortorieSessiondatadata fromthata

PHPセッションを保護するためのベストプラクティスは何ですか?PHPセッションを保護するためのベストプラクティスは何ですか?May 01, 2025 am 12:22 AM

PHPセッションのセキュリティは、次の測定を通じて達成できます。1。session_regenerate_id()を使用して、ユーザーがログインまたは重要な操作である場合にセッションIDを再生します。 2. HTTPSプロトコルを介して送信セッションIDを暗号化します。 3。Session_Save_Path()を使用して、セッションデータを保存し、権限を正しく設定するためのSecure Directoryを指定します。

PHPセッションファイルはデフォルトで保存されていますか?PHPセッションファイルはデフォルトで保存されていますか?May 01, 2025 am 12:15 AM

phpsessionFilesToredInthededirectoryspecifiedBysession.save_path、通常/tmponunix-likesystemsorc:\ windows \ temponwindows.tocustomizethis:1)uesession_save_path()tosetaCustomdirectory、ensuringit'swritadistradistradistradistradistra

PHPセッションからデータをどのように取得しますか?PHPセッションからデータをどのように取得しますか?May 01, 2025 am 12:11 AM

toretrievedatafrompsession、Startthessession withsession_start()andAccessvariablesshe $ _SessionArray.forexample:1)Startthessession:session_start()

セッションを使用してショッピングカートを実装するにはどうすればよいですか?セッションを使用してショッピングカートを実装するにはどうすればよいですか?May 01, 2025 am 12:10 AM

セッションを使用して効率的なショッピングカートシステムを構築する手順には、次のものがあります。1)セッションの定義と機能を理解します。セッションは、リクエスト全体でユーザーのステータスを維持するために使用されるサーバー側のストレージメカニズムです。 2)ショッピングカートに製品を追加するなど、基本的なセッション管理を実装します。 3)製品の量管理と削除をサポートし、高度な使用状況に拡大します。 4)セッションデータを持続し、安全なセッション識別子を使用することにより、パフォーマンスとセキュリティを最適化します。

PHPでインターフェイスをどのように作成して使用しますか?PHPでインターフェイスをどのように作成して使用しますか?Apr 30, 2025 pm 03:40 PM

この記事では、PHPでインターフェイスを作成、実装、および使用する方法について説明し、コード組織と保守性の利点に焦点を当てています。

crypt()とpassword_hash()の違いは何ですか?crypt()とpassword_hash()の違いは何ですか?Apr 30, 2025 pm 03:39 PM

この記事では、PHPのCrypt()とpassword_hash()の違いについて、パスワードハッシュの違いについて説明し、最新のWebアプリケーションの実装、セキュリティ、および適合性に焦点を当てています。

PHPのクロスサイトスクリプト(XSS)をどのように防ぐことができますか?PHPのクロスサイトスクリプト(XSS)をどのように防ぐことができますか?Apr 30, 2025 pm 03:38 PM

記事では、入力検証、出力エンコード、およびOWASP ESAPIやHTML浄化器などのツールを使用して、PHPのクロスサイトスクリプト(XSS)を防止します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)