从Ajax格式化jQuery Datatable的PHP/Mysql数据

从Ajax格式化jQuery Datatable的PHP/Mysql数据,php,mysql,json,ajax,Php,Mysql,Json,Ajax,需要帮助来建立这样一个表吗 我有一个mysql中有将近50万行的表。我想通过ajax在jQuery数据表中加载近10k行。我怎样才能这样格式化 { "data": [ [ "Tiger Nixon", "System Architect", "Edinburgh", "5421", "2011/04/25", "$320,800" ], ... [ "Garrett Winters",

需要帮助来建立这样一个表吗

我有一个mysql中有将近50万行的表。我想通过ajax在jQuery数据表中加载近10k行。我怎样才能这样格式化

{
  "data": [
    [
      "Tiger Nixon",
      "System Architect",
      "Edinburgh",
      "5421",
      "2011/04/25",
      "$320,800"
    ],
 ...
   [
      "Garrett Winters",
      "Accountant",
      "Tokyo",
      "8422",
      "2011/07/25",
      "$170,750"
    ]
 ]
}
由此

foreach ($query as $result){
  ... $result['msgid'], $result['msgdate']...
}
我现在尝试的是

$a = '
{
  "data": 
  [';
  foreach($q as $r){ 
    $a.= '[
      "'.$r['msgid'].'",
      "'.$r['msgdate'].'"
    ],';
  }
  $a = rtrim($a,',');
  $a.=']
}';
echo $a;

您可以使用
json\u encode
函数

首先我会更改:

$a = '
{
  "data": 
  [';
  foreach($q as $r){ 
    $a.= '[
      "'.$r['msgid'].'",
      "'.$r['msgdate'].'"
    ],';
  }
  $a = rtrim($a,',');
  $a.=']
}';
echo $a;
致:

您还可以更改php.ini文件中的
max\u execution\u time
。 也可以这样考虑:

    $a = array();
    $result = mysqli_query($con,$sql);
    while($row = mysqli_fetch_assoc($result)) {
         array_push($a, $row ); 
    }

向我们展示服务器端代码。“你确定加载10k行是个好主意吗?”JeroenHeier是的,我需要展示所有行。直接将数据加载到
数据表
,有时会导致php
最大超时
错误。因此,尝试从ajaxThis加载数据返回
[{“msgid”:“366C7869366C31333533838”,“msgdate”:“2016-12-24”}]
首先,您必须创建一个映射您需要的数组,然后对其进行编码…您可以执行以下操作:json_编码(['data'=>数组值($q)],或者您可以使用对象作为数据源:
    $a = array();
    $result = mysqli_query($con,$sql);
    while($row = mysqli_fetch_assoc($result)) {
         array_push($a, $row ); 
    }