이 글은 주로 ThinkPHP 빠른 시작 튜토리얼의 데이터 페이징 구현 과정을 소개합니다. 필요한 친구가 있으면 참고해도 됩니다.
데이터 페이징은 웹 프로그래밍에서 가장 일반적으로 사용되는 기능 중 하나일 수 있습니다. 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(즉, 웹 사이트의 루트 디렉터리) 아래에 새 테스트 폴더를 만들고 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( 'DB_TYPE'=>'mysql', 'DB_HOST'=>'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를 열면 다음 코드를 찾을 수 있습니다
<?php // 本类由系统自动生成,仅供测试用途 class IndexAction extends Action{ public function index(){ header("Content-Type:text/html; charset=utf-8"); echo "<p style='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'>^_^ Hello,欢迎使用<span style='font-weight:bold;color:red'>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 클래스 아래의 index()는 default/index/index.html에 해당하고 add.html은 분명히 index 클래스 아래의 add()에 해당합니다.
add.html만 있고 해당 add() 작업이 없는 경우 add()(http://localhost/test/index.php/index/add)에 액세스하여 add.html 템플릿에 액세스할 수도 있습니다. add.html 템플릿 아래의 자리 표시자는 해당 데이터로 대체됩니다. 효과는 다음과 같습니다.
(3) 폼의 "action=__URL__/insert"에서 알 수 있듯이 폼 처리를 위한 액션은 /test/index.php/index/insert이므로 처리할 새로운 삽입 액션을 추가해야 합니다. 양식 제출 데이터. 그 전에 아직 중요한 작업이 남아 있는데, 바로 새 모델 파일을 추가하는 것입니다. 모델 파일 생성을 통해 insert 작업에서 편리한 방법으로 데이터베이스를 운용할 수 있게 됩니다. /test/test/lib/model/ 폴더를 열고 TestModel.class.php 파일을 새로 생성합니다. , 다음 코드를 입력하고 저장합니다.
<?php class TestModel extends Model { } ?>
이어야 합니다.
그런 다음 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()。'[ <A HREF="javascript:history.back()">返 回</A> ]'); } } }
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(); }
<hr><a href="__URL__/add">填写</a> //分页显示,这一行 <hr>{$page}<hr> //数据显示。下面的参数很快会再进行详解。它很好理解。 <volist name="list" id="vo"> <p>姓名:{$vo.name}</p> <p>内容:{$vo.content}</p> <hr> </volist>
축하합니다. thinkphp를 사용하여 페이지 매기기를 만드는 방법을 배웠습니다
웹 페이지에 대한 페이징 첨자 생성 코드를 구현하는 PHP 백엔드 방법
페이징 사용자 정의 스타일을 구현하는 thinkPHP3.2 방법 정보
js 이벤트 페이징 클래스 customPage를 추가하는 thinkPHP 프레임워크 정보 .class.php
분석
위 내용은 ThinkPHP 데이터 페이징의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!