javascript - 尝试从 pdo 查询构建服务器端数据表
问题描述
我必须从服务器端构建一个数据表,因为我有超过 200k 行,而且我没有选择从执行语句中创建它,例如:
$result['draw']=1;
$temp = BD::query('SELECT * FROM `ersmessages` WHERE 1 LIMIT 10');
$result['recordsTotal'] = sizeof($temp);
$result['recordsFiltered'] = sizeof($temp);
$result['data'] = $temp;
但是当我这样做时,它不会对我的结果进行分页,并且对于 200k 行它会给出错误。如果我限制有效但在一页上的查询。
我的 JS 看起来像:
$('#tableAllMessages').DataTable( {
"processing": true,
"serverSide": true,
"paging": true,
"searching": { "regex": true },
"lengthMenu": [ [10, 25, 50, 100, -1], [10, 25, 50, 100, "All"] ],
"pageLength": 10,
"ajax": "req/getAllMessages.php"
} );
我应该如何继续拥有一个包含 200k 行的分页数据表?我显然不能使用ssp。
解决方案
好的,问题已经解决,我需要将 recordsTotal 设置为我的最大(200k 行)大小,并且我需要为查询添加一个偏移量,这样我就可以对我的表进行分页。
$offset = $_REQUEST['start'];
$result['recordsTotal'] = 200000;
$query = BD::query('SELECT * FROM `ersmessages` WHERE 1 ORDER BY `idERSMessage` ASC LIMIT 10 OFFSET '.intval($offset))
$result['data'] = $query;
$result['draw']=$_REQUEST['draw'];
推荐阅读
- firebase - 使用 getDownloadUrl() 与公开对象有什么区别?
- security - macOS 小鸟应用程序文件显示在安全面板中?
- token - ETH 调用代币分配合约 - 汽油价格
- chatbot - 插槽可以在 RASA 中采用没有操作功能或表单的实体值吗?
- swift - 为什么我的 SwiftUI 列表选择在选择时没有突出显示?
- ios - 收藏视图更改后开始玩 Lottie
- python - Python:如何安装 utils.metrics 模块?
- python - 使用 python 下载 MEGA 文件时出现问题
- matplotlib - 使用圆形颜色图绘制热图
- python - 双向 LSTM Keras:传递了与“cell.state_size”不兼容的“initial_state”