📅  最后修改于: 2020-09-30 05:35:16             🧑  作者: Mango
PHP主要用于存储和显示数据库中的数据。分页可以使用ajax完成,但此处使用非ajax完成。在本教程中,我们将学习MySQL与PHP的分页。让我们用一个示例简要回顾一下分页-
SQLSELECT查询可能会返回数百万条记录。在单个页面上显示所有记录不是一个好主意。单个页面上的大量记录可能会花费大量时间来加载页面,并且还会花费时间来查找特定数据。这可能导致(导致)用户头脑混乱。因此,根据用户要求将这些记录分为几页。
那么,我们该怎么做才能将这些大量的记录分布在页面中?将单个列表分布到多个页面中的方法称为分页。分页是指在多页而非单页上显示查询结果。
分页是一种在多页上显示数据而不是将数据放在单个页上的方法。分页有助于将记录分为几页,从而使数据更具可读性和可理解性。
分页是PHP开发人员的常见任务。MySQL通过使用带有两个参数的LIMIT子句帮助开发人员创建分页。第一个参数为OFFSET,第二个参数为将从数据库返回的记录数。
让我们看看在PHP中使用分页概念的一些优缺点-
分页虽然有一些强大的优点,但是仍然有许多开发人员避免使用它。除了一些强大的优点之外,分页的缺点也很少,如下所示:
您可以通过修改导航设置的结构来避免使用分页技术。
为了实现分页,我们需要一个大数据集以对其应用分页。因此,首先我们需要创建一个数据库和表。之后,提供表中的记录并开始编码以创建分页。这样,从数据库中获取的数据可以分为几页。
在这里,我们将介绍两个分页示例。第一个示例是没有CSS的分页创建的简单基础示例,而在第二个示例中,我们将使用CSS和bootstrap以有吸引力的方式创建分页。您可以看到两者的输出。以下是创建分页的步骤;
创建分页的简单步骤-
请按照下面的步骤一个接一个地创建简单的分页。
下面的代码是一个简单的分页示例,它是通过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将针对每个页面而变化。
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 . ' ';
}
?>
输出:
有关上述分页示例,请参见以下输出-
下面的示例是分页的另一个示例,其中我们将CSS和HTML结合使用以使网页视图更具吸引力。CSS使网页更具创意和吸引力。另一方面,MySQL将数据存储在数据库中。因此,您可以更好地学习分页。
除了数据库连接性之外,我们已经将整个代码编写在一个文件中。因此,我们将创建两个文件,即connection.php和index1.php。将两个文件都保存为.php扩展名。在下面的示例中,您将学习创建更具创意和吸引力的分页。
文件:connection.php
文件:index1.php
Pagination
Pagination Simple Example
This page demonstrates the basic
Pagination using PHP and MySQL.
ID
Name
College
Score
";
// Number of pages required.
$total_pages = ceil($total_records / $per_page_record);
$pagLink = "";
if($page>=2){
echo " Prev ";
}
for ($i=1; $i<=$total_pages; $i++) {
if ($i == $page) {
$pagLink .= "".$i." ";
}
else {
$pagLink .= "
".$i." ";
}
};
echo $pagLink;
if($page<$total_pages){
echo " Next ";
}
?>
" required>
输出:
有关上述分页示例,请参见以下输出-
请注意,