PHP에서 페이지를 매기는 방법

王林
풀어 주다: 2023-02-24 16:16:01
원래의
2683명이 탐색했습니다.

PHP에서 페이지를 매기는 방법

웹사이트에서는 일반적으로 목록 페이지에 내용이 너무 많으면 페이징 기능이 설정됩니다. 오늘은 페이징 원리를 연구하고 이 기능을 작은 사례를 통해 구현해 보겠습니다.

페이지 표시 mysql 데이터베이스에서 검색된 데이터는 일반 세그먼트로 표시됩니다. sql 문의 제한은 시작 데이터를 페이지 수에 바인딩하는 데 사용되며 페이지 수를 기준으로 데이터베이스에서 데이터를 가져옵니다. .

예: 데이터베이스 테이블 이름이 list이고, 각 페이지에서 10개의 정보를 가져온다고 가정합니다.

第1页    select * from list limit 0,10;
第2页   select * from list limit 10,10;
第3页   select * from list limit 20,10;
由此观之第n页 是select * from list limit (n-1)*10,10;
로그인 후 복사

이런 식으로 페이지 수를 사용하여 데이터를 가져오는 공식을 얻습니다.

select * from list limit ($page-1)*$pagesize,$pagesize; $page是当前的页数,$pagesize是每页取得条数
로그인 후 복사

필수 지식 points

1. 기본 작업 데이터베이스 기능

1.1, mysqli_connect(); $link = mysqli_connect('127.0.0.1','root',12345678,'bbs'); 1.2, mysqli_query(): $res = mysqli_query($link, "select * from list");와 같은 데이터 가져오기 두 번째 매개변수는 sql 문입니다.
1.3, mysqli_num_rows(): 가져온 데이터 조각 수 확인 예를 들어, $num = mysqli_num_rows($res);

1.4, mysqli_fetch_assoc() 또는 mysqli_fetch_row(): 얻은 데이터 세트에서 한 번에 한 조각씩만 가져오며 포인터는 다음을 가리킵니다. 가져온 후 다음 조각. 예를 들어 mysqli_fetch_assoc($res)는 fetch_assoc 외에 fetch_row에도 fetch_array

1.5가 있고, 데이터베이스에서 데이터를 연산하는 데는 Limit이 사용되며, 시작 위치는 Limit이고, 연산 횟수는 숫자 가져오기 등이다. 데이터베이스에서 * 목록 제한 10,10; 2. 기타 관련 지식

2.1 $_SERVER['REQUEST_URI']获取当前页面的url 
例如https://i.cnblogs.com/EditPosts.aspx?opt=1的url为/EditPosts.aspx?opt=1 
2.2 parse_url():解析url,返回url的各个组成部分,如果不写第二个参数,返回的数组中可能的键有以下几种:
    scheme - 如 http,
    host
    port
    user
    pass
    path
    query - 在问号 ? 之后
    fragment - 在散列符号 # 之后
로그인 후 복사

구현 프로세스:

1.parse_url로 구문 분석하여 URL 배열을 가져옵니다. 2. 서버에 접속하여 목록 페이지에 표시할 콘텐츠 컬렉션을 가져와서 표시되는 항목의 총 개수를 계산한 다음 콘텐츠의 총 페이지 수를 계산합니다

3. 제출 상태에서 그렇지 않은 경우 기본값은 첫 번째 페이지 $pageval

4입니다. 계산된 제한 시작 위치를 변수 $page
5에 할당합니다. $page 및 $pageSize를 사용하여 데이터베이스

6에서 데이터를 가져옵니다. 데이터 수집을 편리하게 반복하면 출력이 페이지에 표시됩니다

특정 코드:

$url = $_SERVER['REQUEST_URI'];
$url = parse_url($url);
$url = $url['path'];
$pageSize = 4;//连接服务器$link = mysqli_connect('127.0.0.1','root',12345678,'bbs');
$res = mysqli_query($link,'select * from fenye');
$num = mysqli_num_rows($res);
$pageNum = ceil($num/$pageSize);//判断页面是否是提交状态if ( isset($_GET['page']) && $_GET['page'] >1) {
    $pageVal = $_GET['page'];
}else {
    $pageVal = 1;
}//计算起始位置$page = ($pageVal-1)*$pageSize;//去数据库取数据$res = $mysqli_query($link,"select * from fenye limit $page,$pageSize");//如果$res有值,则循环便利结果展示输出在页面if ($res) {    while( $row = mysqli_fetch_assoc($res) ) {    echo $row[&#39;name&#39;]. &#39;|&#39;.$row[&#39;age&#39;].&#39;<br/>&#39;;
    }
}//html添加页数部分<a href="?page=1">1</a>;
<a href="?page=2">2</a>;
<a href="?page=3">3</a>;
<a href="?page=4">4</a>;
<a href="?page=5">5</a>;
总共<?php echo $pageNum; ?>页,当前在<?php echo $pageVal;?>页
로그인 후 복사

추천 튜토리얼:

PHP 비디오 튜토리얼

위 내용은 PHP에서 페이지를 매기는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!