Heim  >  Artikel  >  Backend-Entwicklung  >  ThinkPHP-Daten-Paging

ThinkPHP-Daten-Paging

不言
不言Original
2018-06-08 15:28:021605Durchsuche

In diesem Artikel wird hauptsächlich der Daten-Paging-Implementierungsprozess des ThinkPHP-Schnellstart-Tutorials vorgestellt. Freunde, die es benötigen, können darauf zurückgreifen.

Daten-Paging ist möglicherweise eine der am häufigsten verwendeten Funktionen in der Webprogrammierung. ThinkPHP implementiert die Paging-Funktion sehr einfach. Dies kann durch die Definition einiger weniger Parameter erreicht werden. Und es ist auch sehr einfach zu erweitern.

Lassen Sie uns das Paging-Programm von ThinkPHP von Grund auf implementieren.

1. Zuerst müssen wir eine Datenbank für Paging-Tests erstellen. Der test.sql-Code lautet wie folgt.

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. Als nächstes müssen wir ein neues ThinkPHP-Projekt erstellen. Die neue Version von tp verfügt über eine integrierte Funktion zur automatischen Generierung von Projektverzeichnissen.
Erstellen Sie einen neuen Testordner unter htdocs (d. h. dem Stammverzeichnis Ihrer Website), legen Sie den THINKPHP-Kernordner im Teststammverzeichnis ab, erstellen Sie eine neue Datei index.php im Teststammverzeichnis und fügen Sie die hinzu Folgender Code:

// 定义ThinkPHP框架路径
define('THINK_PATH', './Thinkphp');
//定义项目名称和路径。这2句是重点。
define('APP_NAME', 'test');
define('APP_PATH', './test');
// 加载框架入口文件
require(THINK_PATH."/ThinkPHP.php");
//实例化一个网站应用实例
$App = new App();
//应用程序初始化
$App->run();

Führen Sie „http://localhost/test/index.php“ aus. Sie sehen die Willkommensseite von ThinkPHP. Öffnen Sie Ihr Testverzeichnis erneut und stellen Sie fest, dass sich im Stammverzeichnis ein zusätzlicher Testordner befindet. Zu diesem Zeitpunkt wurde Ihr Projektverzeichnis erstellt.
Öffnen Sie das Verzeichnis /test/test/conf/, erstellen Sie eine neue „config.php“ und konfigurieren Sie Ihre Datenbankverbindung.

<?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;,
);
?>

Wenn Sie den Debugging-Modus aktivieren möchten, fügen Sie bitte

"debug_mode"=>true

hinzu das Array 3. Implementierung der grundlegenden Seiteneingabe und -ausgabe.
(1) Öffnen Sie /test/test/lib/action/IndexAction.class.php und Sie finden den folgenden Code

<?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>";
}
}
?>

automatisch generiert von Das System Die Funktion index() in der Klasse indexaction ist die Standardfunktion zum Aufrufen der Startseite. Sie können http://localhost/test/index.php oder http://localhost/test/index.php/index verwenden, um darauf zuzugreifen

(2) Wir werden es vorerst ignorieren. Zuerst benötigen wir eine Formulareinreichungsseite. Öffnen Sie „/test/test/tpl/default/index/“, erstellen Sie eine neue Datei 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>

Geben Sie nach dem Speichern http:// ein localhost /test/index.php/index/add, Sie können die Seite sehen, die Sie hinzugefügt haben. Darunter wird __URL__ (URL sollte groß geschrieben werden) in die entsprechende Adresse /test/index.php/Index/ konvertiert.
Hier finden Sie eine kurze Einführung in die Beziehung zwischen Vorlagen und Aktionen. Für jede Aktion ist die entsprechende Vorlage eine gleichnamige HTML-Datei. Beispielsweise entspricht index() unter der Indexklasse default/index/index.html, und add.html entspricht offensichtlich add() unter der Indexklasse.
Wir können sogar auf add zugreifen, indem wir auf add() (http://localhost/test/index.php/index/add) zugreifen, wenn nur add.html und keine entsprechende add()-HTML-Vorlage vorhanden ist. Platzhalter unter der Vorlage add.html werden durch entsprechende Daten ersetzt. Der Effekt ist wie folgt.

(3) Wie aus der „action=__URL__/insert“ des Formulars ersichtlich ist, lautet die Aktion für die Formularverarbeitung /test/index.php/index/insert, daher müssen wir die Einfügung hinzufügen Aktion zur Verarbeitung der Formularübermittlungsdaten. Zuvor müssen wir noch eine wichtige Sache erledigen, nämlich eine neue Modelldatei hinzufügen. Durch die Erstellung der Modelldatei können wir praktische Methoden verwenden, um die Datenbank in der Einfügeaktion zu bedienen.
Öffnen Sie den Ordner /test/test/lib/model/ und erstellen Sie eine neue Datei TestModel.class.php. Öffnen Sie es, geben Sie den folgenden Code ein und speichern Sie ihn:

<?php
class TestModel extends Model {
}
?>

Einfach ausgedrückt ist dies die Basisdatei für die ActiveRecord-Implementierung. Die Benennungsregel besteht darin, Model nach der Tabelle in Ihrer Datenbank hinzuzufügen. Die Tabelle, die wir verwenden werden, ist beispielsweise Test, mein Dateiname muss TestModel.class.php sein und der Klassenname unter der Datei muss TestModel.

Als nächstes kehren wir zur Datei indexaction.class.php zurück, löschen den Originalcode und fügen den folgenden Code hinzu.

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) Als nächstes müssen wir der IndexAction-Klasse eine Standard-Anzeigeaktion index() für die Startseite hinzufügen, um die Formulardaten aufzurufen.

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();
}

Es ist Zeit, eine Vorlage einzurichten. Erstellen Sie eine neue index.html unter /test/test/tpl/default/index/ (da diese standardmäßig index() entspricht. Daher können Sie direkt im Programm zuweisen, ohne die Vorlagendatei anzugeben. Dies kann natürlich der Fall sein konfiguriert.)

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

Speichere ihn. Geben Sie dann http://localhost/test/ ein.

Herzlichen Glückwunsch. Sie haben gelernt, wie Sie Thinkphp zum Erstellen von Paginierungen verwenden. Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für alle beim Lernen hilfreich ist. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

PHP-Backend-Methode zur Implementierung des Paging-Subskript-Generierungscodes für Webseiten


Über die Implementierung von thinkPHP3.2 Methoden zum Paging benutzerdefinierter Stile


Analyse zum Hinzufügen der js-Ereignis-Paging-Klasse customPage.class.php zum thinkPHP-Framework


Das obige ist der detaillierte Inhalt vonThinkPHP-Daten-Paging. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn