페이징 표시는 대량의 데이터를 탐색하고 표시하는 매우 일반적인 방법이며 웹 프로그래밍에서 가장 일반적으로 처리되는 이벤트 중 하나입니다. 웹 프로그래밍 베테랑들에게는 이런 코드를 작성하는 것이 숨 쉬는 것처럼 자연스러운 일이지만, 초보자들에게는 이 문제에 대해 헷갈리는 경우가 많기 때문에 이 문제를 자세히 설명하기 위해 특별히 이 글을 썼습니다.
1. 페이징 원리:
소위 페이징 표시란 데이터베이스에 설정된 결과를 인위적으로 섹션으로 나누는 것을 의미합니다. 표시하려면 두 개의 초기 매개변수가 필요합니다.
페이지당 레코드 수($PageSize)는 얼마입니까?
현재 페이지($CurrentPageID)는 어떤 페이지인가요?
이제 다른 결과 세트를 제공하면 특정 결과를 표시할 수 있습니다.
이전 페이지($PReviousPageID), 다음 페이지($NextPageID), 총 페이지 수($numPages) 등과 같은 기타 매개변수는 이전 항목을 기반으로 얻을 수 있습니다.
MySQL 데이터베이스를 예로 들면, 테이블의 특정 콘텐츠를 가로채려는 경우 sql 문을 사용할 수 있습니다. 다음 SQL 문 세트를 살펴보고 규칙을 찾아보세요.
처음 10개 레코드: 테이블 제한 0,10에서 * 선택
11~20번째 레코드: 테이블 제한 10,10에서 * 선택
21~30번째 레코드: 테이블 제한에서 * 선택 20,10
......
이 SQL 문 세트는 실제로 $PageSize=10일 때 테이블의 각 페이지에서 데이터를 가져오는 SQL 문입니다.
select * from tablelimit ($CurrentPageID - 1) * $PageSize, $PageSize
이 템플릿을 사용하여 해당 값을 대체하고 이를 위의 SQL 문 집합과 비교하여 해당되는지 확인합니다. 데이터를 얻는 방법에 대한 가장 중요한 문제를 해결한 후에 남은 것은 매개변수를 전달하고 적절한 SQL 문을 구성한 다음 PHP를 사용하여 데이터베이스에서 데이터를 가져와 표시하는 것입니다.
2. 페이지 매김 코드 설명: 5단계
코드가 완전히 설명되어 있으며 복사할 수 있습니다. 메모장에서 직접 사용하세요
-
-
- 직원 정보 목록
-
- //모든 emp 테이블의 정보 표시
- //1. 데이터베이스에 연결합니다
- $conn=mysql_connect('localhost','root','1234abcd') 또는 die('연결 데이터베이스 오류'.mysql_error());
- //2. 데이터베이스 선택
- mysql_select_db('empManage');
- //3. 문자셋을 선택하세요
- mysql_query('set names utf8');
- //4.SQL 문을 보내고 처리 결과를 가져옵니다
- //4.1 Pagling [두 개의 SQL 문을 보내는 Pagling 중 하나는 $ Rowcount를 가져오는 것이고, 다른 하나는 SQL의 Limit을 통해 Paging 결과를 얻는 것입니다. 따라서 두 개의 결과 세트를 얻게 됩니다. 이름을 지정할 때 이를 구별하는 것을 잊지 마십시오.
- 페이징(4개의 값과 2개의 SQL 문). ]
- $pageSize=3;//각 페이지에 표시되는 레코드 수
- $rowCount=0;//총 레코드 수
- $pageNow=1;//어떤 페이지를 표시하시겠습니까
- $pageCount=0;//총 몇 개의 페이지가 있나요? [페이징에 대한 표시는 4개가 있는데, 하나도 빠질 수 없습니다. $rowCount는 서버에서 얻을 수 있으므로 초기값은 0으로 지정할 수 있습니다.
$pageNow는 어떤 페이지를 표시하려고 합니까? $pageSize는 각 페이지에 표시할 레코드 수를 미리 결정합니다. -
$pageCount=ceil($rowCount/$pageSize), $rowCount의 초기 값은 0일 수 있으므로 $pageCount는 물론 0으로 설정될 수 있습니다. 4개의 표시기(2개는 0, 하나는 1, 다른 하나는) 웹사이트가 필요합니다. ]-
//4.15 페이징 링크에 따라 $ PAGENOW 값 수정 -
if(!empty($_GET['pageNow'])){-
$pageNow=$_GET['pageNow'];-
}[페이징 링크를 기준으로 $pageNow 값을 수정합니다. ]-
$sql='emp에서 개수(id) 선택';-
$res1=mysql_query($sql);-
//4.11 행 수 가져오기-
if($row=mysql_fetch_row($res1)){-
$rowCount=$row[0];
- }//[$rowCount를 가져오면 $pageCount라는 두 개의 표시기를 알 수 있습니다. ]
- //4.12 페이지 수 계산
- $pageCount=ceil($rowCount/$pageSize);
- $pageStart=($pageNow-1)*$pageSize;
-
- //4.13 페이징으로 SQL 결과 보내기
- $sql="select * from emplimit $pageStart,$pageSize";//[$sql문의 제한 이후 2개의 값(시작값, 페이지당 항목 수)을 기준으로 페이징을 구현합니다. . 그리고 이 두 값을 찾아보세요.]
- $res2=mysql_query($sql,$conn) 또는 die('无法获取结果集'.mysql_error());
- echo '
';[ echo "";]
- "
아이디이름이름등급번째>이메일번째>월급 /th>删除用户 | 修改用户 일> |
"; while($row=mysql_fetch_assoc($res2)){ -
echo "{$row['id']} | {$row['name']} | { $row['grade']} | {$row['email']} | {$row['salary']} | < ;td>删除用户修改用户 | "; }-
에코 '
';-
//4.14打印流页码的超链接-
for($i=1;$i<=$pageCount;$i++){-
echo "$i ";//[打印流页码的超链接]-
-
}-
//5.释放资源,关闭连接-
mysql_free_result($res2);-
mysql_close($conn);-
?>-