作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
编辑:我通过用在这里找到的自定义 SSP 类替换 SSP 类找到了解决方案:https://github.com/emran/ssp
我不知道它是否是一个可以理解的标题,但这是我的问题:
我有一个需要插入到数据表中的数据库表(称为项目)。我可以使用 ServerSide 进行调用并在数据表中获取结果。
但是,对于每个项目(每一行),都有一个项目创建者(项目数据库表中的列 creator_id)。我需要做的是向创建者数据库表发出请求,以获取创建者的名字/姓氏,每次我从项目数据库表中获取一行。有道理吗?
这是我使用的代码:
$table = 'projects';
$primaryKey = 'project_id';
$columns = array(
array(
'db' => 'project_id',
'dt' => 'DT_RowId',
'formatter' => function( $d, $row ) {
return $d;
}
),
array( 'db' => 'creator_id',
'dt' => 'creator',
'formatter' => function( $d, $row ) {
// Here I need to make a call to the creators DB-table and return the $creator_name value
return $creator_name;
}
)
);
// SQL server connection information
$sql_details = array(
'user' => '',
'pass' => '',
'db' => '',
'host' => ''
);
require(BASE_DIR.'/lib/dataTables/ssp.class.php');
$result = SSP::simple($_GET, $sql_details, $table, $primaryKey, $columns);
最佳答案
您可以使用 formatter
属性进行单独的 SQL 查询,但它会增加脚本响应时间,从而极大地影响性能。
在使用 ssp.class.php
时,您可以使用以下技巧而不是表名来使用 GROUP BY
,JOIN
等
<?php
$table = <<<EOT
(
SELECT projects.project_id, creators.creator_id, creators.creator_name
FROM projects
LEFT JOIN creators ON projects.creator_id=creators.creator_id
) t
EOT;
$primaryKey = 'project_id';
$columns = array(
array(
'db' => 'project_id',
'dt' => 'DT_RowId'
),
array(
'db' => 'creator_id',
'dt' => 'creator'
),
array(
'db' => 'creator_name',
'dt' => 'creator_name'
)
);
// SQL server connection information
$sql_details = array(
'user' => '',
'pass' => '',
'db' => '',
'host' => ''
);
require(BASE_DIR.'/lib/dataTables/ssp.class.php');
$result = SSP::simple($_GET, $sql_details, $table, $primaryKey, $columns);
echo json_encode($result);
要使用该技巧,您还需要编辑 ssp.class.php
并将 FROM `$table`
的所有实例替换为 FROM $table
删除反引号。
或者,有 github.com/emran/ssp扩展 ssp.class.php
的库的存储库允许 GROUP BY
、JOIN
、别名。
参见 jQuery DataTables: Using WHERE, JOIN and GROUP BY with ssp.class.php获取更多信息。
关于mysql - 数据表 : Make a parallel request in another table using ServerSide,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30325617/
我是一名优秀的程序员,十分优秀!