🗣 Wd提问: php分页json
🤖 Ai回答: 以下是一个使用 PHP 实现分页并返回 JSON 数据的示例:
php
<?php
// 数据库配置
$host = 'localhost';
$db = 'your_database';
$user = 'username';
$pass = 'password';
$charset = 'utf8mb4';
// 创建数据库连接
try {
$dsn = mysql:host=$host;dbname=$db;charset=$charset;
$opt = [
PDO::ATTR_ERRMODE = PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE = PDO::FETCH_ASSOC
];
$pdo = new PDO($dsn, $user, $pass, $opt);
} catch (PDOException $e) {
die(Database connection failed: 、$e-getMessage());
}
// 分页参数
$page = isset($_GET['page']) ? max(1, intval($_GET['page'])) : 1;
$limit = isset($_GET['limit']) ? min(100, intval($_GET['limit'])) : 10;
// 计算偏移量
$offset = ($page 1) * $limit;
// 查询总记录数
$totalQuery = SELECT COUNT(*) AS total FROM users;
$totalStmt = $pdo-query($totalQuery);
$totalData = $totalStmt-fetch();
$total = $totalData['total'];
// 计算总页数
$totalPages = ceil($total / $limit);
// 查询当前页数据
$query = SELECT * FROM users ORDER BY id DESC LIMIT :offset, :limit;
$stmt = $pdo-prepare($query);
$stmt-bindValue(':offset', $offset, PDO::PARAM_INT);
$stmt-bindValue(':limit', $limit, PDO::PARAM_INT);
$stmt-execute();
$data = $stmt-fetchAll();
// 构建响应数据
$response = [
'page' = $page,
'limit' = $limit,
'total' = $total,
'total_pages' = $totalPages,
'data' = $data,
'has_next' = $page < $totalPages,
'has_prev' = $page 1
];
// 返回 JSON 格式数据
header('Content-Type: application/json');
echo json_encode($response, JSON_PRETTY_PRINT);
?
功能说明:
1、分页参数处理:
`page`:当前页码(默认第 1 页)
`limit`:每页显示数量(默认 10 条,最大限制 100 条)
2、数据库操作:
使用 PDO 防止 SQL 注入
先查询总记录数计算总页数
使用 `LIMIT` 和 `OFFSET` 实现分页查询
3、响应数据结构:
json
{
page: 1,
limit: 10,
total: 100,
total_pages: 10,
data: [...], // 当前页数据
has_next: true, // 是否有下一页
has_prev: false // 是否有上一页
}
使用示例:
访问 `http://65.hk/pagination.php?page=2&limit=15` 时:
会查询第 2 页数据,每页显示 15 条记录
返回包含分页信息和数据的 JSON 结构
扩展建议:
1、排序功能:添加 `order_by` 和 `sort` 参数实现动态排序
2、搜索功能:添加 `search` 参数实现模糊查询
3、字段过滤:添加 `fields` 参数控制返回的字段
4、缓存机制:对高频访问的分页结果进行缓存
5、错误处理:添加更完善的异常处理机制
这个示例实现了基本的分页功能,可根据实际需求扩展更多特性。
📣 商家广告:





0
IP地址: 164.52.24.222
搜索次数: 0
提问时间: 2025-11-06 00:36:11
🛒 域名购买:
wt.cx
010.hk
touwang.com.cn
23.cx
47.gs
e-d.cn
yb.gs
363.net.cn
w-f.com.cn
diaowang.com.cn
❓️ 热门提问:
虚拟显卡
pe服务器
pohl域名
cn2vps
cdn加速 视频
doctor域名
查看域名的ip
网店店铺托管代理哪家好
一台服务器安装两个mysql
云主机和虚拟主机的区别
豌豆Ai站群搜索引擎系统
🌐 域名评估:
aw.cq.cn
rr.sd.cn
ltkj.net
nn.hk.cn
dji.xj.cn
pujs.cn
star.js.cn
mg.gs
evtol.hb.cn
rr.hi.cn
⛏ 最新挖掘:
凯里酸汤鱼
贵阳烤脑花
都匀毛尖茶
花溪牛肉粉
贵阳烤生蚝
贵阳烤豆腐
贵阳纸包鱼
贵阳特色菜
🖌 热门作画:
🤝 关于我们:
豌豆Ai
域名
建站
站群
留痕
推广
评估
源码
开发Ai
工具
日记
价格
加盟
广告
流量
留言
联系
🗨 加入群聊:
🔗 友情链接:
涨啦网
股票搜索
ai提问
🧰 站长工具:
Ai工具 whois查询 搜索
📢 温馨提示:本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
👉 技术支持:本站由豌豆Ai提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.10.25》搭建本站。