📜  PHP Pagination

📅  最后修改于: 2020-09-30 05:35:16             🧑  作者: Mango

PHP分页

PHP主要用于存储和显示数据库中的数据。分页可以使用ajax完成,但此处使用非ajax完成。在本教程中,我们将学习MySQL与PHP的分页。让我们用一个示例简要回顾一下分页-

SQLSELECT查询可能会返回数百万条记录。在单个页面上显示所有记录不是一个好主意。单个页面上的大量记录可能会花费大量时间来加载页面,并且还会花费时间来查找特定数据。这可能导致(导致)用户头脑混乱。因此,根据用户要求将这些记录分为几页。

那么,我们该怎么做才能将这些大量的记录分布在页面中?将单个列表分布到多个页面中的方法称为分页。分页是指在多页而非单页上显示查询结果。

什么是分页?

分页是一种在多页上显示数据而不是将数据放在单个页上的方法。分页有助于将记录分为几页,从而使数据更具可读性和可理解性。

分页是PHP开发人员的常见任务。MySQL通过使用带有两个参数的LIMIT子句帮助开发人员创建分页。第一个参数为OFFSET,第二个参数为将从数据库返回的记录数。

让我们看看在PHP中使用分页概念的一些优缺点-

分页的优点

  • 分页在大型项目中非常有用,因为它使网络更加专业。不仅更加专业,而且还使网页的运行速度更快,更精确,更高效。
  • 借助分页,我们可以通过将数据划分到各个页面上来节省页面的加载时间。它使我们免于一次加载很多信息。
    例如-包含1000张图像的网页比每个网页上50张图像需要更多的时间来加载图像。
    这意味着成千上万的图像需要成千上万的HTTP请求,这会使页面无响应。通过使用LIMIT子句进行分页来限制数据量可以解决此问题。
  • 分页的使用可改善用户体验,增加广告收入并减少页面的加载时间。

分页的缺点

分页虽然有一些强大的优点,但是仍然有许多开发人员避免使用它。除了一些强大的优点之外,分页的缺点也很少,如下所示:

  • 分页本身是PHP的一大开销,这是分页的缺点之一。这完全是一项开销,因为它是一项外部功能,可以以多余的标记,样式和逻辑为代价来实现。一个小的数据集经常被忽略使用分页。
  • 分页可能会导致搜索引擎上的页面排名较低,因为当页面离开首页并需要多次单击时,通常不会获得较高的页面排名。
  • 它还将链接的数量,社交份额,结果总数显示在网页上,以及将信息拆分为多个页面时页面接收的锚文本。

您可以通过修改导航设置的结构来避免使用分页技术。

用PHP和MySQL实现分页

为了实现分页,我们需要一个大数据集以对其应用分页。因此,首先我们需要创建一个数据库和表。之后,提供表中的记录并开始编码以创建分页。这样,从数据库中获取的数据可以分为几页。

在这里,我们将介绍两个分页示例。第一个示例是没有CSS的分页创建的简单基础示例,而在第二个示例中,我们将使用CSS和bootstrap以有吸引力的方式创建分页。您可以看到两者的输出。以下是创建分页的步骤;

创建分页的简单步骤-

  • 创建一个数据库和表。在表中提供记录列表。
  • 与MySQL数据库连接。
  • 创建分页链接以将数据拆分为多个页面,并将其添加到表的底部。
  • 从数据库中获取数据并将其显示到多个页面。

请按照下面的步骤一个接一个地创建简单的分页。

例子1

下面的代码是一个简单的分页示例,它是通过PHP在MySQL数据库的帮助下完成的。它将从数据库中获取的数据分成几页。在此示例中,我们将创建用于在多个页面上显示的字母的分页。

数据库创建

首先,在创建时创建一个由分页命名的数据库,并在其中创建一个名为Alphabet的表。通过名称ID和字母创建属性,并在表中提供数据。

数据库连接

将PHP文件连接到数据库是一项必需的任务。这样就可以将存储在数据库中的数据显示到网页上。因此,将数据库连接到PHP文件中以在网页上显示数据。

您可以在同一文件中编写数据库连接性代码,也可以将其分开保存在另一个文件中,并将其包含在所需的PHP文件中。数据库连接代码

$conn = mysqli_connect('localhost', 'root', '');
if (! $conn) {
         die("Connection failed" . mysqli_connect_error());
}
else {
         mysqli_select_db($conn, 'pagination');
}

在本教程中,我们使用mysqli扩展名。因此,所有查询均按照mysqli格式编写。

获取当前页码

下面的代码确定用户当前正在访问的页码。如果不存在,则默认情况下将页码设置为1。

if (!isset ($_GET['page']) ) {
$page = 1;
} else {
$page = $_GET['page'];
}

分页公式

对于分页,您需要设置每页显示的记录数限制。在这里,我们将每页结果的限制设置为10,因此它将显示在每页上,如下所示-

第1页-A至J(1-10)

第2页-K至T(11-20)

第3页-U到Z(21-26)

$results_per_page = 10;
$page_first_result = ($page-1) * $results_per_page;

获取总页数

$query = "select *from alphabet";
$result = mysqli_query($conn, $query);
$number_of_result = mysqli_num_rows($result);

//determine the total number of pages available
$number_of_page = ceil ($number_of_result / $results_per_page);

检索数据并显示在网页上

以下代码用于从数据库中检索数据并显示在相应划分的网页上。

$query = "SELECT *FROM alphabet LIMIT " . $page_first_result . ',' . $results_per_page;
$result = mysqli_query($conn, $query);

//display the retrieved result on the webpage
while ($row = mysqli_fetch_array($result)) {
echo $row['id'] . ' ' . $row['alphabet'] . '
'; }

显示URL中页面的链接

使用此代码的网页URL将针对每个页面而变化。

for($page = 1; $page<= $number_of_page; $page++) {
echo '' . $page . ' ';

最终密码

现在,将所有代码放在一个文件中以进行分页。

文件:Index2.php



 Pagination 



';
}


//display the link of the pages in URL
for($page = 1; $page<= $number_of_page; $page++) {
echo '' . $page . ' ';
}

?>


输出:

有关上述分页示例,请参见以下输出-

例子2

下面的示例是分页的另一个示例,其中我们将CSS和HTML结合使用以使网页视图更具吸引力。CSS使网页更具创意和吸引力。另一方面,MySQL将数据存储在数据库中。因此,您可以更好地学习分页。

除了数据库连接性之外,我们已经将整个代码编写在一个文件中。因此,我们将创建两个文件,即connection.php和index1.php。将两个文件都保存为.php扩展名。在下面的示例中,您将学习创建更具创意和吸引力的分页。

  • php:创建用于数据库连接
  • php:创建用于分页

文件:connection.php


文件:index1.php

 
   
    Pagination 
 
 
   
   
  

Pagination Simple Example

This page demonstrates the basic Pagination using PHP and MySQL.

ID Name College Score
" required>

输出:

有关上述分页示例,请参见以下输出-

请注意,