我开始将DataTables Table插件用于jQuery,但遇到了一些问题。我从这里使用示例代码。
我有MySQL表女巫看起来像这样:
id | 名称| Father_id
father_id是id同一表中仅在不同行中的值。因此,如果我想知道父亲的名字,我必须在同一个表中进行搜索WHERE id = father_id。但是DataTable所做的只是按原样显示MySQL表的内容。
father_id
id
WHERE id = father_id
在我的数据表中,我想显示如下数据:
id | 名称| 父亲名| Father_id
因此,当DataTable从MySQL表中获取数据时,但是在创建表之前,我想更改列值,该列值当时是father_idMySQL中同一行中的值。我也想father_name通过特定的搜索来添加它father_id。
father_name
正如PaulF所指出的,您需要使用JOIN或子查询从同一张表中检索父亲的名字。
JOIN
我假设您是ssp.class.php根据您提到的示例在服务器端处理数据的。
ssp.class.php
类ssp.class.php不支持联接和子查询,但是有一种解决方法。诀窍是使用$table定义如下所示的子查询。table在子查询中替换为您的实际表名。
$table
table
$table = <<<EOT ( SELECT a.id, a.name, a.father_id, b.name AS father_name FROM table a LEFT JOIN table b ON a.father_id = b.id ) temp EOT; $primaryKey = 'id'; $columns = array( array( 'db' => 'id', 'dt' => 0 ), array( 'db' => 'name', 'dt' => 1 ), array( 'db' => 'father_id', 'dt' => 2 ), array( 'db' => 'father_name', 'dt' => 3 ) ); $sql_details = array( 'user' => '', 'pass' => '', 'db' => '', 'host' => '' ); require( 'ssp.class.php' ); echo json_encode( SSP::simple( $_GET, $sql_details, $table, $primaryKey, $columns ) );
您还需要编辑ssp.class.php和替换的所有实例FROM$table`与FROM $table`删除反引号。
FROM
`与
确保所有列名都是唯一的,否则用于AS分配别名。
AS
还有github.com/emran/ssp存储库,其中包含增强的ssp.class.php支持JOIN。
有关更多信息,请参见jQuery数据表:将WHERE,JOIN和GROUP BY与ssp.class.php一起使用。