Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Paging-Prinzip Paging-Code Detaillierte Erläuterung der Beispiele für Paging-Klassen-Produktionsmethoden

PHP-Paging-Prinzip Paging-Code Detaillierte Erläuterung der Beispiele für Paging-Klassen-Produktionsmethoden

墨辰丷
墨辰丷Original
2018-06-01 10:22:241206Durchsuche

In diesem Artikel werden hauptsächlich das PHP-Paging-Prinzip, der PHP-Paging-Code und das Tutorial zur Produktion von PHP-Paging-Klassen vorgestellt.

Die Paging-Anzeige ist eine sehr gängige Methode Durchsuchen und Anzeigen großer Datenmengen und eines der am häufigsten behandelten Ereignisse in der Webprogrammierung. Für Veteranen der Webprogrammierung ist das Schreiben dieser Art von Code so natürlich wie das Atmen, aber für Anfänger sind sie oft verwirrt über dieses Problem, deshalb habe ich diesen Artikel geschrieben, um dieses Problem im Detail zu erläutern.

1. Paging-Prinzip:

Die sogenannte Paging-Anzeige bedeutet, dass die Ergebnismenge in der Datenbank zur Anzeige künstlich in Abschnitte unterteilt wird Hier sind Anfangsparameter erforderlich:

Wie viele Datensätze pro Seite ($PageSize)?
Welche Seite ist die aktuelle Seite ($CurrentPageID)?

Solange Sie mir jetzt einen anderen Ergebnissatz geben, kann ich ein bestimmtes Ergebnis anzeigen.

Andere Parameter wie vorherige Seite ($PReviousPageID), nächste Seite ($NextPageID), Gesamtzahl der Seiten ($numPages) usw. können basierend auf den vorherigen Angaben ermittelt werden.

Wenn Sie am Beispiel der MySQL-Datenbank einen bestimmten Inhalt aus der Tabelle abfangen möchten, können Sie die SQL-Anweisung verwenden: select * from table limit offset, rows. Schauen Sie sich den folgenden Satz von SQL-Anweisungen an und versuchen Sie, die Regeln zu finden.

Die ersten 10 Datensätze: Wählen Sie * aus dem Tabellenlimit 0,10
Der 11. bis 20. Datensatz: Wählen Sie * aus dem Tabellenlimit 10,10
Der 21. bis 30. Datensatz Datensätze: * aus Tabellenlimit 20,10 auswählen
……
Dieser Satz von SQL-Anweisungen ist eigentlich die SQL-Anweisung zum Abrufen jeder Datenseite in der Tabelle, wenn $PageSize=10 kann eine solche Vorlage zusammenfassen:
select * from table limit ($CurrentPageID - 1) * $PageSize, $PageSize
Nehmen Sie diese Vorlage, fügen Sie den entsprechenden Wert ein und vergleichen Sie ihn mit dem obigen Satz von SQL-Anweisungen, um das zu sehen nicht der Fall. Nach der Lösung des wichtigsten Problems, wie man die Daten erhält, müssen nur noch die Parameter übergeben, die entsprechende SQL-Anweisung erstellt und dann mit PHP die Daten aus der Datenbank abgerufen und angezeigt werden.

2. Beschreibung des Paging-Codes: fünf Schritte

Der Code wird vollständig erklärt und kann zur direkten Verwendung in Ihren eigenen Notizblock kopiert werden

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<title>雇员信息列表</title>
</head>
<?php 
    //显示所有emp表的信息
    //1.连接数据库
    $conn=mysql_connect(&#39;localhost&#39;,&#39;root&#39;,&#39;1234abcd&#39;) or die(&#39;连接数据库错误&#39;.mysql_error());
    //2.选择数据库
    mysql_select_db(&#39;empManage&#39;);
   //3.选择字符集
    mysql_query(&#39;set names utf8&#39;);
   //4.发送sql语句并得到结果进行处理
    //4.1分页[分页要发出两个sql语句,一个是获得$rowCount,一个是通过sql的limit获得分页结果。所以我们会获得两个结果集,在命名的时候要记得区分。
分页 (四个值 两个sql语句)。]
  $pageSize=3;//每页显示多少条记录
   $rowCount=0;//共有多少条记录
    $pageNow=1;//希望显示第几页
    $pageCount=0;//一共有多少页 [分页共有这个四个指标,缺一不可。由于$rowCount可以从服务器获得的,所以可以给予初始值为0;
$pageNow希望显示第几页,这里最好是设置为0;$pageSize是每页显示多少条记录,这里根据网站需求提前制定。
.$pageCount=ceil($rowCount/$pageSize),既然$rowCount可以初始值为0,那么$pageCount当然也就可以设置为0.四个指标,两个0 ,一个1,另一个为网站需求。]
         //4.15根据分页链接来修改$pageNow的值
         if(!empty($_GET[&#39;pageNow&#39;])){
            $pageNow=$_GET[&#39;pageNow&#39;];
        }[根据分页链接来修改$pageNow的值。]
     $sql=&#39;select count(id) from emp&#39;;
     $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 emp limit $pageStart,$pageSize";//[根据$sql语句的limit 后面的两个值(起始值,每页条数),来实现分页。以及求得这两个值。]
    $res2=mysql_query($sql,$conn) or die(&#39;无法获取结果集&#39;.mysql_error());
     echo &#39;<table border=1>&#39;;[    echo "<table border=&#39;1px&#39; cellspacing=&#39;0px&#39; bordercolor=&#39;red&#39; width=&#39;600px&#39;>";]
 "<tr><th>id</th><th>name</th><th>grade</th><th>email</th><th>salary</th><th><a href=&#39;#&#39;>删除用户</a></th><th><a href=&#39;#&#39;>修改用户</a></th></tr>";    while($row=mysql_fetch_assoc($res2)){
        echo "<tr><td>{$row[&#39;id&#39;]}</td><td>{$row[&#39;name&#39;]}</td><td>{$row[&#39;grade&#39;]}</td><td>{$row[&#39;email&#39;]}</td><td>{$row[&#39;salary&#39;]}</td><td><a href=&#39;#&#39;>删除用户</a></td><td><a href=&#39;#&#39;>修改用户</a></td></tr>";    }
     echo &#39;</table>&#39;;
     //4.14打印出页码的超链接
     for($i=1;$i<=$pageCount;$i++){
         echo "<a href=&#39;?pageNow=$i&#39;>$i</a> ";//[打印出页码的超链接]
     
     }
     //5.释放资源,关闭连接
     mysql_free_result($res2);
    mysql_close($conn);
?>
</html>

3. Einfaches Teilen von Paging-Kategorien

Jetzt geben wir die Erstellung einer einfachen Kategorie bekannt. Solange Sie die Prinzipien und Schritte dieses Kurses verstehen, können Sie andere komplexe Kurse analog verstehen. Kein Unsinn, laden Sie einfach den Quellcode hoch und Sie können ihn direkt in Ihrem Projekt verwenden.

Datenbankoperationscode: mysqli.func.php

<?php 
// 数据库连接常量 
 define(&#39;DB_HOST&#39;, &#39;localhost&#39;); 
 define(&#39;DB_USER&#39;, &#39;root&#39;); 
 define(&#39;DB_PWD&#39;, &#39;&#39;); 
 define(&#39;DB_NAME&#39;, &#39;guest&#39;); 
  
 // 连接数据库 
 function conn() 
 { 
   $conn = mysqli_connect(DB_HOST, DB_USER, DB_PWD, DB_NAME); 
   mysqli_query($conn, "set names utf8"); 
  return $conn; 
} 
 
//获得结果集 
function doresult($sql){ 
 $result=mysqli_query(conn(), $sql); 
  return $result; 
 } 
 
 //结果集转为对象集合 
 function dolists($result){ 
  return mysqli_fetch_array($result, MYSQL_ASSOC); 
 } 
 
 function totalnums($sql) { 
  $result=mysqli_query(conn(), $sql); 
 return $result->num_rows; 
 } 
  
 
 // 关闭数据库 
 function closedb() 
 { 
   if (! mysqli_close()) { 
    exit(&#39;关闭异常&#39;); 
   } 
} 
 
?>

Paging-Implementierungscode:

<?php 
 include &#39;mysqli.func.php&#39;; 
 // 总记录数 
 $sql = "SELECT dg_id FROM tb_user "; 
 $totalnums = totalnums($sql); 
  
 // 每页显示条数 
 $fnum = 8; 
 
 // 翻页数 
 $pagenum = ceil($totalnums / $fnum); 
 
 //页数常量 
 @$tmp = $_GET[&#39;page&#39;]; 
  
 //防止恶意翻页 
 if ($tmp > $pagenum) 
   echo "<script>window.location.href=&#39;index.php&#39;</script>"; 
  
 //计算分页起始值 
 if ($tmp == "") { 
  $num = 0; 
} else { 
  $num = ($tmp - 1) * $fnum; 
 } 
// 查询语句 
 $sql = "SELECT dg_id,dg_username FROM tb_user ORDER BY dg_id DESC LIMIT " . $num . ",$fnum"; 
 $result = doresult($sql); 
 
 // 遍历输出 
 while (! ! $rows = dolists($result)) { 
   echo $rows[&#39;dg_id&#39;] . " " . $rows[&#39;dg_username&#39;] . "<br>"; 
 } 
  
 // 翻页链接 
 for ($i = 0; $i < $pagenum; $i ++) { 
   echo "<a href=index.php?page=" . ($i + 1) . ">" . ($i + 1) . "</a>"; 
 } 
 
 ?>

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird.

Verwandte Empfehlungen:

PHP Excel-Datei hochladen, um Daten in die MySQL-Datenbank zu importieren

php Auslösen Detaillierte Erklärung zum Auslösen von Ausnahmen und zum Abfangen bestimmter Ausnahmetypen

php array_merge_recursive Array merge

Das obige ist der detaillierte Inhalt vonPHP-Paging-Prinzip Paging-Code Detaillierte Erläuterung der Beispiele für Paging-Klassen-Produktionsmethoden. 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