数据表格式化来自多个来源的列?(服务器端处理)


datatables format column from multiple sources?(Server side processing)

我正在尝试让服务器端处理与连接列一起工作。

我在这篇文章中看到了这个:Datatables-服务器端处理-DB列合并

但当我使用这种格式时,会出现SQL错误。但我也想插入说。。。田地之间的空隙。。。这可能吗?

编辑:

示例:

表init:

var customer_Table = $('#customer_Table').DataTable( {
    "processing": true,
    "serverSide": true,
    "ajax": "php/server_processing.php",
    stateSave: true,
    "lengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]],
    'order': 2, 'asc' ]],
    "columns": [{"title":"id","visible":false,"type":"html-string"},{"title":"name","visible":true,"type":"html-string"},[{"title":"address","visible":true,"type":"html-string"}
} );

色谱柱方案:

$columns = array(
    array( 'db' => 'id', 'dt' => "id" ),
    array( 'db' => 'name',  'dt' => "Name" ),
    array( 'db' => "`street` . ' ' . `city` . '<br>' . `postal` . ' ' . `country`" 'dt' => "address"
    )
);

错误:

{"error":"An SQL error occurred: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '`id`,`name`, `JCP`, ``street` . ' ' . `city` . '<br>' . `postal` . ' ' . `country``...' at line 1"}

根据错误消息判断,处理引擎需要对"db"的有效列引用。每个"db"都应引用WHERE子句中的有效列引用,每个"dt"都包含要为该列显示的标签。

根据你的摘录,你的参考是:

"`street` . ' ' . `city` . '<br>' . `postal` . ' ' . `country`"

这对我熟悉的大多数数据库引擎来说意义不大。试试这样的东西:

$columns = array(
    array( 'db' => 'id', 'dt' => "id" ),
    array( 'db' => 'name',  'dt' => "Name" ),
    array( 'db' => "CONCAT(`street`, ' ', `city`, '<br>', `postal`, ' ', `country`)", 
            'dt' => "address")
);
$columns = array(
    array( 'db' => 'id', 'dt' => "id" ),
    array( 'db' => 'name',  'dt' => "Name" ),
    array( 'db' => "CONCAT(`street`, ' ', `city`, '<br>', `postal`, ' ', `country`)", 
            'as' => "address",
            'dt' => "address")
);