我必须从服务器端构建数据表,因为我有超过200k的行,而且我没有选择从诸如以下这样的execute语句中进行选择:
$result['draw']=1;
$temp = BD::query('SELECT * FROM `ersmessages` WHERE 1 LIMIT 10');
$result['recordsTotal'] = sizeof($temp);
$result['recordsFiltered'] = sizeof($temp);
$result['data'] = $temp;
但是,当我执行此操作时,它不会分页我的结果,并且对于20万行,它会给出错误。如果我限制了只能在一页上执行的查询。
我的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"
} );
如何继续创建具有20万行的页面数据表?我显然不能使用ssp。
答案 0 :(得分:0)
好的问题已经解决了,我需要将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'];