Heim  >  Artikel  >  Backend-Entwicklung  >  PHP kombiniert mit MySQL zur Implementierung von nativem Paging

PHP kombiniert mit MySQL zur Implementierung von nativem Paging

韦小宝
韦小宝Original
2018-01-29 10:04:172026Durchsuche

In der PHP-Entwicklung werden Frameworks immer häufiger eingesetzt. Je mehr Frameworks verwendet werden, desto weniger native Praxis wird nach und nach der Vergangenheit angehören. Ich hoffe, dass nicht jeder die grundlegenden Dinge in der Vergangenheit aufgibt! In unserem Artikel geht es um die Kombination von PHP mit MySQL zur Implementierung von nativem Paging. Jetzt kapseln allgemeine Frameworks die Paging-Klasse, sodass Sie sie nicht manuell schreiben müssen. Aber wenn Sie nichts zu tun haben, können Sie versuchen, es zu schreiben und Ihre Programmierkenntnisse zu trainieren.

PHP+MYSQL-Paging wird hauptsächlich basierend auf dem Limit in der SQL-Anweisung implementiert.

Limit-Anweisung:

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

Sie können sich das Limit als die Anzahl der Seiten für das Paging vorstellen und den Offset als die Anzahl der auf jeder Seite angezeigten Elemente.
Der Implementierungseffekt ist wie in der Abbildung dargestellt:

PHP kombiniert mit MySQL zur Implementierung von nativem Paging

Dies ist nur ein Beispielcode, der hauptsächlich die Paging-Funktion implementiert , Seiteneffekte usw. Es gibt kein spezielles Debugging.

Die Hauptfunktionen sind: Startseite, letzte Seite, vorherige Seite, nächste Seite, Gesamtseitenstatistik, Positionierung der aktuellen Seite, digitale Anzeige, bis zu vier, und der Rest wird dargestellt durch ....

Spezifische Code-Implementierung:
Hier ist die von PDO betriebene Datenbank

<?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;
?>

Sie können sie lokal üben! Wenn Sie es nicht verstehen, sollten Sie mehr üben! Wenn Sie diese grundlegenden Dinge vergessen, wird es schwierig sein, sie wieder in den Griff zu bekommen! !

Verwandte Empfehlungen:

Implementierung der PHP-Paging-Klasse

Heute werde ich eine nützliche Empfehlung mit Ihnen teilen Gut aussehende PHP-Paginierungsklasse!

Das Implementierungsprinzip des PHP-Paging

Heute werde ich Sie mitnehmen, um das Prinzip des PHP-Paging zu analysieren.

Ein Beispielcode für eine universelle PHP-Paging-Klasse

In diesem Artikel wird hauptsächlich die universelle PHP-Paging-Klasse vorgestellt, die besonders einfach zu verwenden ist. Freunde, die die PHP-Paging-Klasse verwenden müssen Verpassen Sie es nicht.

thinkphp-Paging-Implementierungseffekt

Um eine große Datenmenge anzuzeigen, muss der Inhalt paginiert werden. Dieser Artikel dient der Einführung von thinkphp-Paging für bedürftige Freunde können es einmal gemeinsam lernen.

Das obige ist der detaillierte Inhalt vonPHP kombiniert mit MySQL zur Implementierung von nativem Paging. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn