来自多个来源的数据表格式列(服务器端处理) [英] datatables format column from multiple sources?(Server side processing)
问题描述
我试图让服务器端处理工作使用连接列。
我发现这个帖子:数据库 - 服务器端处理 - DB列合并
但是我使用这种格式我得到SQL错误。但是我也想插入一个字段之间的空格...这是可能吗?
编辑:
示例:
表init:
DataTable({
processing:true,
serverSide:true,
ajax:php / server_processing.php,
stateSave:true,
lengthMenu:[[10,25,50,-1],[10,25,50,全部 ]],
'order':2,'asc']],
columns:[{title:id,visible:false,type字符串},{title:name,visible:true,type:html-string},[{title:address,visible html-string}
});
列方案:
$ columns = array(
array('db'=>'id','dt'=>id),
array('db'=> 'name','dt'=>Name),
array('db'=>`street`。''``city`。'< br>'。 ''。'country`'dt'=>address
)
);
错误:
code> {error:发生SQL错误:SQLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册在``id`,`name`,`JCP`,``street`附近使用的语法'````````````` 'at line 1'}
从错误信息中判断处理引擎正在期待'db'的有效列引用。每个'db'都应该引用WHERE子句中的一个有效的列引用,每个'dt'都包含要为该列显示的标签。
根据你的片段:
`street'。''`city`。'& ````country`
对于大多数数据库引擎来说,这并不意味着什么熟悉。尝试这样的东西:
$ columns = array(
array('db'=>'id' 'dt'=>id),
array('db'=>'name','dt'=>Name),
array('db'=> CONCAT(street,,city,< br>','postal`,'','country`),
'dt'=>address)
);
Im trying to get server side processing working with concatenated columns.
I came across this this post: Datatables - Server-side processing - DB column merging
But when I use that format I get SQL errors. But I also want to insert say... a space between the fields... is this possible?
Edit:
Example:
Table 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"}
} );
Column scheme:
$columns = array(
array( 'db' => 'id', 'dt' => "id" ),
array( 'db' => 'name', 'dt' => "Name" ),
array( 'db' => "`street` . ' ' . `city` . '<br>' . `postal` . ' ' . `country`" 'dt' => "address"
)
);
Error:
{"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"}
Judging from the error message, the processing engine is expecting a valid column reference for 'db'. Each 'db' should refer to a valid column reference in the WHERE clause, and each 'dt' contains the label to be displayed for that column.
Your reference is, according to your snippet:
"`street` . ' ' . `city` . '<br>' . `postal` . ' ' . `country`"
Which doesn't mean much to most database engines I am familiar with. Try something like this:
$columns = array(
array( 'db' => 'id', 'dt' => "id" ),
array( 'db' => 'name', 'dt' => "Name" ),
array( 'db' => "CONCAT(`street`, ' ', `city`, '<br>', `postal`, ' ', `country`)",
'dt' => "address")
);
这篇关于来自多个来源的数据表格式列(服务器端处理)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!