>백엔드 개발 >PHP 튜토리얼 >thinkphp 예제 튜토리얼 데이터 페이징

thinkphp 예제 튜토리얼 데이터 페이징

WBOY
WBOY원래의
2016-07-25 08:53:021204검색
  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. ) 엔진=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(즉, 웹 사이트의 루트 디렉터리) 아래에 새 테스트 폴더를 만들고 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. //웹사이트 애플리케이션 인스턴스 인스턴스화
  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', //새 데이터베이스 이름 test
  5. 'db_user'=>'root', //데이터베이스 사용자 이름
  6. 'db_pwd'=> ; '', //데이터베이스 비밀번호
  7. 'db_port'=>'3306',
  8. );
  9. ?>
코드 복사

디버깅 모드를 켜려면 다음을 추가하세요. "debug_mode"=>참

3. 기본 페이지 입출력 구현. 1) /test/test/lib/action/indexaction.class.php를 열고 다음을 찾습니다.

  1. // 이 클래스는 시스템에 의해 자동으로 생성되며 테스트 목적으로만 사용됩니다.
  2. class indexaction extends action{
  3. 공개 함수 인덱스(){
  4. header("content-type:text/html; charset=utf-8");
  5. echo "
    ^_^ 안녕하세요, 환영합니다< ; 스팬 스타일='font-weight:bold;color:red'>thinkphp
    ";
  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. 이름: <입력 이름=" name" type="text" >

  2. 콘텐츠:

  3. 제출:

코드 복사

저장 후 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 템플릿 아래의 자리 표시자는 해당 데이터로 대체됩니다. (Scripting School bbs.it-home.org에서 편집 및 편집)

3) 폼의 "action=__url__/insert"에서 알 수 있듯이 폼 처리를 위한 액션은 /test/index.php/index/insert이므로, 폼 처리를 위한 삽입 액션을 추가해야 합니다. 양식 제출 데이터. 그 전에 아직 중요한 작업이 남아 있는데, 바로 새 모델 파일을 추가하는 것입니다. 모델 파일 생성을 통해 삽입 작업 시 편리한 방법으로 데이터베이스를 운용할 수 있게 됩니다. /test/test/lib/model/ 폴더를 열고 testmodel.class.php라는 새 파일을 생성한 후 다음 코드를 입력하고 저장합니다.

  1. class testmodel 확장 모델 {
  2. }
  3. ?>
코드 복사

액티브레코드 구현을 위한 기본 파일입니다. 명명 규칙은 데이터베이스의 테이블 뒤에 모델을 추가하는 것입니다. 예를 들어 사용할 테이블은 test이고, 파일명은 testmodel.class.php, 파일 하위 클래스명은 testmodel이어야 한다. 그런 다음 indexaction.class.php 파일로 돌아가서 원래 코드를 삭제하고 다음을 추가하세요.

  1. class indexaction 확장 작업{
  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) 다음으로 indexaction 클래스에 홈페이지 기본 표시 동작 index()를 추가하여 양식 데이터를 호출해야 합니다.

  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 = 새 페이지($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->ass('list',$list);
  20. $this->sign( '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의 페이징 방법과 예시입니다. 모든 분들께 도움이 되길 바랍니다.



성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.