让我来详细讲解一下“PHP分页显示制作详细讲解”的完整攻略。
什么是分页显示?
在Web开发中,当数据量很大的时候,我们需要将数据进行分页显示,将大量数据分成若干页,每页显示一定数量的数据,以方便用户查看和浏览。
分页显示的制作方式
下面是使用PHP实现分页显示的步骤:
- 连接数据库
在使用PHP实现分页显示之前,我们首先需要连接数据库。我们可以使用以下命令连接MySQL数据库:
$link = mysqli_connect($host, $username, $password, $database);
其中,$host
、$username
、$password
、$database
是连接MySQL数据库必须的参数,你需要填写相应的值。
- 统计数据总数
在进行分页显示之前,我们需要先知道数据库中数据总数。我们可以使用以下命令获取数据总数:
$sql = "SELECT COUNT(*) AS count FROM table_name";
$result = mysqli_query($link, $sql);
$row = mysqli_fetch_assoc($result);
$count = $row['count'];
其中,table_name
是数据库表名,你需要将其替换为你自己的表名。
- 计算总页数
计算总页数很简单,我们只需要将数据总数除以每页显示的数据量,然后向上取整即可:
$per_page = 10; // 每页显示的数据量
$page_count = ceil($count / $per_page); // 总页数
- 获取当前页数
在获取当前页数之前,我们需要知道当前页的数据在数据库中起始位置。我们可以使用以下命令获取起始位置:
$page = isset($_GET['page']) ? $_GET['page'] : 1; // 当前页数
$start = ($page - 1) * $per_page; // 起始位置
其中,$_GET['page']
是URL中传递的当前页数参数,你需要根据自己的实际情况进行相应的调整。
- 获取当前页的数据
获取当前页的数据很简单,我们可以使用以下命令获取:
$sql = "SELECT * FROM table_name LIMIT {$start}, {$per_page}";
$result = mysqli_query($link, $sql);
其中,table_name
是数据库表名,你需要将其替换为你自己的表名。
- 显示分页导航
最后一个步骤是显示分页导航,让用户可以方便地浏览数据。我们可以使用以下命令显示分页导航:
for($i = 1; $i <= $page_count; $i++){
echo "<a href='?page={$i}'>{$i}</a> ";
}
其中,$page_count
是总页数。我们可以使用循环语句将每个页面的链接输出。
实例
下面是两个示例,它们展示了如何使用以上步骤对数据进行分页显示。
示例1:使用MySQLi
<?php
// 连接MySQLi数据库
$link = mysqli_connect('localhost', 'root', '', 'test');
// 获取数据总数
$sql = "SELECT COUNT(*) AS count FROM news";
$result = mysqli_query($link, $sql);
$row = mysqli_fetch_assoc($result);
$count = $row['count'];
// 计算总页数
$per_page = 10; // 每页显示的数据量
$page_count = ceil($count / $per_page); // 总页数
// 获取当前页数
$page = isset($_GET['page']) ? $_GET['page'] : 1; // 当前页数
$start = ($page - 1) * $per_page; // 起始位置
// 获取当前页的数据
$sql = "SELECT * FROM news LIMIT {$start}, {$per_page}";
$result = mysqli_query($link, $sql);
// 输出数据
while($row = mysqli_fetch_assoc($result)){
echo "{$row['title']}<br>";
}
// 显示分页导航
for($i = 1; $i <= $page_count; $i++){
echo "<a href='?page={$i}'>{$i}</a> ";
}
mysqli_close($link);
?>
其中,news
是一个包含新闻标题和正文的数据库表名。
示例2:使用PDO
<?php
// 连接PDO数据库
$link = new PDO("mysql:host=localhost;dbname=test", "root", "");
// 获取数据总数
$sql = "SELECT COUNT(*) AS count FROM news";
$result = $link->query($sql);
$row = $result->fetch(PDO::FETCH_ASSOC);
$count = $row['count'];
// 计算总页数
$per_page = 10; // 每页显示的数据量
$page_count = ceil($count / $per_page); // 总页数
// 获取当前页数
$page = isset($_GET['page']) ? $_GET['page'] : 1; // 当前页数
$start = ($page - 1) * $per_page; // 起始位置
// 获取当前页的数据
$sql = "SELECT * FROM news LIMIT {$start}, {$per_page}";
$result = $link->query($sql);
// 输出数据
while($row = $result->fetch(PDO::FETCH_ASSOC)){
echo "{$row['title']}<br>";
}
// 显示分页导航
for($i = 1; $i <= $page_count; $i++){
echo "<a href='?page={$i}'>{$i}</a> ";
}
$link = null;
?>
同样的,news
是一个包含新闻标题和正文的数据库表名。
以上就是用PHP实现分页显示的详细攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP分页显示制作详细讲解 - Python技术站