>  기사  >  백엔드 개발  >  PHP와 MySQL을 결합하여 네이티브 페이징 구현

PHP와 MySQL을 결합하여 네이티브 페이징 구현

韦小宝
韦小宝원래의
2018-01-29 10:04:172076검색

PHP 개발에서 frameworks는 점점 더 광범위하게 사용되는 것을 볼 수 있습니다. 프레임워크를 너무 많이 사용하면 점차 과거의 일이 될 것입니다. 모두가 기본적인 것을 과거에 맡기지 않기를 바랍니다. ! 우리의 기사는 네이티브 페이징을 구현하기 위해 MySQL과 결합된 PHP에 관한 것입니다. 이제 일반 프레임워크는 페이지 매김 클래스를 캡슐화하므로 수동으로 작성할 필요가 없습니다. 하지만 할 일이 없을 때는 글쓰기를 시도하고 코딩 기술을 연습해 볼 수 있습니다. PHP+MYSQL 페이징은 주로 SQL 문의 제한을 기준으로 구현됩니다.

limit 문:

select * from table limit `limit`,`offset`;

제한은 페이징 페이지 수로, 오프셋은 각 페이지에 표시되는 항목 수로 생각할 수 있습니다.

구현 효과는 그림과 같습니다.

PHP와 MySQL을 결합하여 네이티브 페이징 구현
이것은 단지 예제 코드일 뿐이며 주로 페이징 기능, 페이지 효과 등을 구현합니다. 이와 관련된 특별한 디버깅은 없습니다.

주요 기능은 홈페이지, 마지막 페이지, 이전 페이지, 다음 페이지, 전체 페이지 통계, 현재 페이지 위치 지정, 디지털 디스플레이, 최대 4개이며 나머지는 다음과 같이 표시됩니다....

특정 코드 구현:

PDO에서 운영하는 데이터베이스입니다

<?php
header("Content-type:text/html;charset=utf-8");
// 1、传入页码
 $page = $_GET[&#39;p&#39;];

// 2、根据页码取出数据
$pdo = new PDO(&#39;mysql:host=localhost;dbname=ceshi&#39;,&#39;root&#39;,&#39;root&#39;);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);

$sql = &#39;SELECT * FROM `goods` LIMIT :start,:offset&#39;;
$limit = ($page-1)*3;
$offset = 3;
$stmt = $pdo->prepare($sql);
$sqlnum = &#39;SELECT COUNT(*)FROM `goods`&#39;;
$stmtnum = $pdo->prepare($sqlnum);
$stmtnum->execute();
$num = $stmtnum->fetch(PDO::FETCH_ASSOC);
$stmt->bindParam(&#39;:start&#39;,$limit);
$stmt->bindParam(&#39;:offset&#39;,$offset);
if(!$stmt->execute()){
            throw new Exception(&#39;查找失败&#39;,1);
        }
 $data = $stmt->fetchAll(PDO::FETCH_ASSOC);
var_dump($data);

// 3、显示数据+显示分页条
/**总页数**/
$end = floor($num[&#39;COUNT(*)&#39;]/$offset)+1;

$page_banner =&#39;<a href="&#39;.$_SERVER[&#39;PHP_SELF&#39;].&#39;?p=1">   首页</a>&#39;;
if($page <=1){
    $page_banner .= &#39;<a style="color:#B8BBB3;">   上一页</a>&#39;;
}else{
    $page_banner .=&#39;<a href="&#39;.$_SERVER[&#39;PHP_SELF&#39;].&#39;?p=&#39;.($page -1).&#39;">   上一页</a>&#39;;
}
if($page+3>4){
    $page_banner .= &#39;...&#39;;
}
if(($page+4)>=$end){
    $page_banner .=&#39;<a href="&#39;.$_SERVER[&#39;PHP_SELF&#39;].&#39;?p=&#39;.($end-3).&#39;">   &#39;.($end-3).&#39;</a>&#39;;
    $page_banner .=&#39;<a href="&#39;.$_SERVER[&#39;PHP_SELF&#39;].&#39;?p=&#39;.($end-2).&#39;">   &#39;.($end-2).&#39;</a>&#39;;
    $page_banner .=&#39;<a href="&#39;.$_SERVER[&#39;PHP_SELF&#39;].&#39;?p=&#39;.($end-1).&#39;">   &#39;.($end-1).&#39;</a>&#39;;
    $page_banner .=&#39;<a href="&#39;.$_SERVER[&#39;PHP_SELF&#39;].&#39;?p=&#39;.($end).&#39;">   &#39;.($end).&#39;</a>&#39;;
}else{
    for($i=0;$i<4;$i++){
    $page_banner .=&#39;<a href="&#39;.$_SERVER[&#39;PHP_SELF&#39;].&#39;?p=&#39;.($page+$i).&#39;">   &#39;.($page+$i).&#39;</a>&#39;;
    }
}

if(($page+4)<$end){
    $page_banner .= &#39;...&#39;;
}

if($page <=$num[&#39;COUNT(*)&#39;]/$offset){
    $page_banner .=&#39;<a href="&#39;.$_SERVER[&#39;PHP_SELF&#39;].&#39;?p=&#39;.($page +1).&#39;">    下一页</a>&#39;;
}else{
    $page_banner .=&#39;<a style="color:#B8BBB3;">   下一页</a>&#39;;
}

$page_banner .=&#39;<a href="&#39;.$_SERVER[&#39;PHP_SELF&#39;].&#39;?p=&#39;.$end.&#39;">     尾页</a>&#39;;

$page_banner .=&#39;<span>   总共&#39;.$end.&#39;页</span>   当前第<span>&#39;.$page."页</span>";
echo $page_banner;
?>
로컬에서 연습할 수 있습니다! 이해가 안 된다면 더 연습해야 합니다! 이런 기본적인 것들은 잊어버리면 다시 익히기가 힘들거든요! !

관련 추천:


php 페이징 클래스 구현

오늘은 사용하기 쉽고 아름다운 PHP 페이징 클래스를 여러분과 공유하겠습니다!

PHP 페이징의 구현 원리

오늘은 PHP 페이징의 원리를 분석해 보겠습니다.

범용 PHP 페이징 클래스 예제 코드

이 글에서는 특히 사용하기 쉬운 범용 PHP 페이징 클래스를 주로 소개합니다. PHP 페이징 클래스를 사용해야 하는 친구들은 놓치지 마세요.

thinkphp 페이징 구현

많은 양의 데이터를 표시하려면 콘텐츠의 페이징이 필요합니다. 이 글은 조직을 위한 thinkphp 페이징을 소개하기 위한 것입니다.

위 내용은 PHP와 MySQL을 결합하여 네이티브 페이징 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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