gpt4 book ai didi

mysql - 数据表 : Make a parallel request in another table using ServerSide

转载 作者:行者123 更新时间:2023-11-29 03:31:12 28 4
gpt4 key购买 nike

编辑:我通过用在这里找到的自定义 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 BYJOIN

<?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 BYJOIN、别名。

链接

参见 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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com