尝试从pdo查询构建服务器端数据表

时间:2019-05-28 15:05:29

标签: javascript php datatables server-side

我必须从服务器端构建数据表,因为我有超过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。

1 个答案:

答案 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'];