在PHP中,可以使用SQL的LIKE语句进行模糊查询,并结合分页功能来实现模糊查询分页。
首先,你需要在数据库中创建一个表,用于存储你要查询的数据。假设你的表名为users
,包含以下字段:id
、name
、email
。
接下来,你可以使用以下代码来实现模糊查询分页功能:
<?php
// 连接数据库
$servername = "localhost";
$username = "root";
$password = "password";
$dbname = "your_database";
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接是否成功
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 获取查询关键字和当前页数
$keyword = $_GET['keyword'];
$page = $_GET['page'];
// 设置每页显示的记录数
$records_per_page = 10;
// 计算查询结果的总页数
$sql = "SELECT COUNT(*) AS total FROM users WHERE name LIKE '%$keyword%'";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
$total_pages = ceil($row['total'] / $records_per_page);
// 计算当前页的起始记录位置
$offset = ($page - 1) * $records_per_page;
// 执行模糊查询并分页
$sql = "SELECT * FROM users WHERE name LIKE '%$keyword%' LIMIT $offset, $records_per_page";
$result = $conn->query($sql);
// 输出查询结果
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo "ID: " . $row['id'] . ",姓名: " . $row['name'] . ",邮箱: " . $row['email'] . "<br>";
}
} else {
echo "没有找到匹配的记录";
}
// 输出分页链接
for ($i = 1; $i <= $total_pages; $i++) {
echo "<a href='?keyword=$keyword&page=$i'>$i</a> ";
}
// 关闭数据库连接
$conn->close();
?>
在上述代码中,我们首先连接数据库,并获取查询关键字和当前页数。然后,我们使用COUNT(*)
函数计算查询结果的总记录数,并根据每页显示的记录数计算总页数。接下来,我们计算当前页的起始记录位置,并执行模糊查询并分页。最后,我们输出查询结果,并输出分页链接。
你可以通过修改$servername
、$username
、$password
和$dbname
变量来设置数据库连接信息,通过修改$records_per_page
变量来设置每页显示的记录数。
请注意,上述代码中使用了GET方法获取查询关键字和当前页数,你可以根据自己的需求修改为POST方法或其他方法来获取参数。
希望以上信息能对你有所帮助!
下一篇:退货退款 php
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站