ssp.class.php
не поддерживает JOIN
. Но у нас есть обходной путь для этого:
Решение 1 (Используйте подзапрос):
Используйте подзапрос в своем определении $table
и замените dist_code
на disname
в $columns
, как показано ниже:
$dbDetails = [
'host' => '****',
'user' => '****',
'pass' => '****',
'db' => '****'
];
$table = '(SELECT r.*, d.disname FROM requestss r INNER JOIN districts d ON r.dist_code = d.discode) tbl';
$primaryKey = 'id';
$columns = [
[ 'db' => 'time_stamp', 'dt' => 0 ],
[ 'db' => 'disname', 'dt' => 1 ],
[ 'db' => 'req_type', 'dt' => 2 ]
];
// Include SQL query processing class
require( 'ssp.class.php' );
// Output data as json format
echo json_encode(
SSP::simple( $_GET, $dbDetails, $table, $primaryKey, $columns )
);
Затем вам нужно заменить все экземпляры `$table`
на $table
, чтобы удалить пометки в файле ssp.class.php
.
Решение 2 (Создать представление):
Если вы не хотите редактировать файл ssp.class.php
, вы можете создать представление в своей базе данных:
CREATE
VIEW requests_view
AS SELECT r.*, d.disname FROM requestss r INNER JOIN districts d ON r.dist_code = d.discode;
Затем используйте requests_view
в качестве $table
в getData.php
файле:
$dbDetails = [
'host' => '****',
'user' => '****',
'pass' => '****',
'db' => '****'
];
$table = 'requests_view';
$primaryKey = 'id';
$columns = [
[ 'db' => 'time_stamp', 'dt' => 0 ],
[ 'db' => 'disname', 'dt' => 1 ],
[ 'db' => 'req_type', 'dt' => 2 ]
];
// Include SQL query processing class
require( 'ssp.class.php' );
// Output data as json format
echo json_encode(
SSP::simple( $_GET, $dbDetails, $table, $primaryKey, $columns )
);
Вы также можете использовать сторонние PHP библиотеки, такие как Настраиваемый класс SSP для библиотеки данных или Datatables библиотека для PHP, которая поддерживает JOIN
s.