1. 구성 정보 캡슐화
1. 구성 파일 config.php를 만들 수 있습니다. 상수로 사용해야 하는 모든 구성을 설정합니다.
<?php //数据库服务器 define('DB_HOST', 'localhost'); //数据库用户名 define('DB_USER', 'root'); //数据库密码 define('DB_PWD', 'secret'); //库名 define('DB_NAME', 'book'); //字符集 define('DB_CHARSET', 'utf8');
2. 2. 나중에 데이터베이스에 연결해야 할 경우에만 포함하면 됩니다. Connection.php 파일.
코드는 다음과 같습니다.
<?php include 'config.php';$conn = mysqli_connect(DB_HOST, DB_USER, DB_PWD, DB_NAME); if (mysqli_errno($conn)) { mysqli_error($conn); exit; } mysqli_set_charset($conn, DB_CHARSET); ?>
앞으로 각 파일에 Connection.php 파일을 직접 포함시켜 데이터베이스 연결을 실현할 수 있습니다.
include 'connection.php';
두 번째, 디스플레이 페이징 구현
페이지는 다음과 같아야 합니다. 페이징에 포함되는 기본 요소는 다음과 같습니다.
페이지 번호를 제어할 때 URL 주소 표시줄을 통해 페이지 번호 값을 전달하여 페이지 번호 제어를 구현합니다. page.php에 페이지 번호 관련 정보를 추가하면 보다 효과적인 정보를 산출할 수 있습니다. URL 제어 페이징의 효과는 다음과 같습니다.
코드 구현에서 페이징은 실제로 오프셋(offset)과 제한 뒤의 숫자(num)를 통해 구현됩니다.
limit offset , num
페이지당 5개의 항목이 표시된다고 가정합니다. 페이징 제한을 제어하는 최종 공식은 다음과 같습니다.
offset的值为 (n-1)*5 num 为规定的5
3. 구현 단계
1. 페이징에 필요한 매개변수
1-1을 계산합니다.
1-2, 현재 페이지
page.php 페이지에 처음 접속하시면 url은 http://www.php.com/page.php 이고 뒤에는 페이지식별번호?page=1이 없습니다. 그것.
그래서 페이지 식별 번호를 수동으로 생성하고 이를 현재 페이지 번호 변수 $page에 전달해야 합니다.
사용자가 전달한 페이지에 소수점 등이 있을까봐 강제 형식 변환을 수행합니다: (int) $_GET['page'].
첫 번째 작성 방법:
通过查询user表的count(id),得到总数$count。 $count_sql = 'select count(id) as c from user'; $result = mysqli_query($conn, $count_sql); $data = mysqli_fetch_assoc($result); //得到总的用户数 $count = $data['c'];
두 번째 작성 방법:
$page = isset($_GET['page']) ? (int) $_GET['page'] : 1;
각 페이지는 정수여야 합니다. 마치 초등학교 수학과 같습니다. 평균적으로 5.6명이 사과 몇개를 준비해야 합니다. 답은 6이어야 합니다.
페이지에 20.3페이지가 나타나면 반올림 기능 최대치를 사용해야 합니다. 페이지 매기기 수를 21로 설정합니다.
총 페이지 수를 각 페이지에 표시되는 데이터 항목 수로 나누어 총 페이지 수를 구합니다.
if (isset($_GET['page'])) { $page = (int) $_GET['page']; } else { $page = 1; }
1-4.상하페이지 제어가 이상해요
첫페이지에서 이전페이지를 클릭하고 마지막페이지에서 다음페이지를 클릭하면 어떻게 되나요?
이 경우 데이터가 범위를 초과하여 페이지를 매길 때 데이터가 표시되지 않습니다.
분명히 이러한 특이한 상황을 고려해야 합니다. 따라서 페이징 중에 첫 번째 페이지에서 1을 빼면 이를 첫 번째 페이지로 만듭니다.
마지막 페이지에 하나를 추가하면 마지막 페이지로 만들어주는데, 즉 예외처리가 완료됩니다.//每页显示数 $num = 5; $total = ceil($count / $num);
앞서 페이징의 핵심은 SQL문의 오프셋과 num을 통해 페이지당 표시 수를 제어하는 것이라고 말했습니다.
if ($page <= 1) { $page = 1; } if ($page >= $total) { $page = $total; }
SQL 문에 $num 및 $offset을 적용합니다.
$num = 5; $offset = ($page - 1) * $num;
URI에서 페이징 값을 제어합니다
$sql = "select id,username,createtime,createip from user order by id desc limit $offset , $num";4. 전체 코드 구현
echo '<tr> <td colspan="5"> <a href="page.php?page=1">首页</a> <a href="page.php?page=' . ($page - 1) . '">上一页</a> <a href="page.php?page=' . ($page + 1) . '">下一页</a> <a href="page.php?page=' . $total . '">尾页</a> 当前是第 ' . $page . '页 共' . $total . '页 </td> </tr>';
위 내용은 간단한 페이징 기능을 구현합니다. 더 많은 관련 콘텐츠를 보려면 PHP 중국어 웹사이트를 방문하세요: PHP 비디오 튜토리얼
위 내용은 PHP에서 페이징을 구현하는 원리와 단계의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!