Php Datatables返回所有行,而不是10行

Php Datatables返回所有行,而不是10行,php,jquery,mysql,ajax,datatables,Php,Jquery,Mysql,Ajax,Datatables,以下是我的AJAX: $('.customers-datatable').dataTable( { "order": [[ 0, "asc" ]], "processing": true, "serverSide": true, "ajax": { url: 'ajax/customers.php?action=list', type: "POST" }, "columns": [ null,

以下是我的AJAX:

$('.customers-datatable').dataTable( {
    "order": [[ 0, "asc" ]],
    "processing": true,
    "serverSide": true,
    "ajax": {
        url: 'ajax/customers.php?action=list',
        type: "POST"
    },
    "columns": [
        null,
        null,
        null,
        null,
        null,
        { "orderable": false, "width": "20px" }
    ]
});
以下是我的PHP/MySql:

$req = $pdo->prepare('SELECT * FROM customers');

$req->execute();

$result['draw'] = 1;
$result['recordsTotal'] = $req->rowCount();
$result['recordsFiltered'] = 10;
$result['data'] = array();

while( $row = $req->fetch() ) {

    $result['data'][] = array($row['lastname'] . ' ' . $row['firstname'], $row['zipcode'], $row['city'], $row['email'], $row['telephone'], "");

}

$req->closeCursor();
因此,我得到的不是10个元素,而是整个列表。以下是渲染内容的预览:


您知道如何将表格限制为10个结果吗?

您是否选中了
limit
关键字

从客户限额0,10中选择*

一般来说,
limit
会与
orderbysome\u column DESC
相结合,赋予它更多的意义(比如,按时间或按id)

已更新

要进行分页,只需在切换页面时传入不同的参数:

SELECT * FROM customers LIMIT 0,10 // 1-10 rows for page 1 
SELECT * FROM customers LIMIT 10,10 // 11-20 rows for page 2
SELECT * FROM customers LIMIT 20,10 // 21-30 rows for page 3
.... and so on

使用数据表中的
pageLength
设置-例如

$('#myTable').dataTable( {
    "pageLength": 10 
});

这将输出10行

好的,我找到了问题的解决方案

以下是我的新数据数组:

$result['data'][] = array(  "name"      =>  $row['lastname'] . ' ' . $row['firstname'],
                            "zipcode"   =>  $row['zipcode'],
                            "city"      =>  $row['city'],
                            "email"     =>  $row['email'],
                            "telephone" =>  $row['telephone'],
                            "action"    =>  "<a href=\"#\" class=\"button-delete\" id=\"" . $row['customer_id'] . "\"><i class=\"fa fa-close fa-2x text-danger\"></i></a>"
                            );

此查询分页将失败。@XavierC。您对文件中的分页一无所知code@XavierC. 我刚刚用一些分页的想法更新了答案。我知道如何使用limit参数限制结果的数量,但是除非我错了,否则使用datatables jquery脚本我不需要使用它,因为它会自己完成工作。好的,你能创建一个提琴让我们看看发生了什么吗?控制台中有错误吗?你应该阅读服务器端数据表发送的用于分页的
start
length
参数(你可以使用
var\u dump($\u POST)
检查所有发送的参数)。服务器应该负责查询数据库(分页、搜索、排序等),否则您无法从datatables提供的所有选项/灵活性中获益。
$('.customers-datatable').dataTable( {
    "order": [[ 0, "asc" ]],
    //responsive: true,
    "processing": true,
    "serverSide": false,
    "ajax": {
        url: 'ajax/customers.php?action=list',
        type: "POST"
    },
    "columns": [
        { "data": "name" },
        { "data": "zipcode" },
        { "data": "city" },
        { "data": "email" },
        { "data": "telephone" },
        { "data": "action",
          "orderable": "false",
          "width": "20px"
        }
    ]
});