#php #mysql #datatables
#php #mysql #таблицы данных
Вопрос:
SQL должен быть
select max(id),Staff_name from position group by Staff_name
Я изменяю ssp.class.php
.
SELECT SQL_CALC_FOUND_ROWS ".implode(", ", self::pluck($columns, 'db'))."
FROM $table
$where
$order
$limit group by Staff_name.
Однако это не работает. Как реализовать этот sql?
Комментарии:
1. Что не работает? Что это за сообщение об ошибке? Как вы применяете запрос? О чем еще мы должны догадаться?
Ответ №1:
РЕШЕНИЕ
Класс ssp.class.php
не поддерживает JOIN
GROUP BY
или подзапросы, но есть обходной путь. Хитрость заключается в использовании вложенного запроса, как показано ниже в $table
определении, в вашем сценарии обработки на стороне сервера ( server_processing.php
).
Например:
$table = <<<EOT
(
SELECT
MAX(id),
Staff_name
FROM position
GROUP BY Staff_name
) temp
EOT;
$primaryKey = 'id';
$columns = array(
array( 'db' => 'id', 'dt' => 0 ),
array( 'db' => 'Staff_name', 'dt' => 1 )
);
$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`
with FROM $table
, чтобы удалить обратные ссылки.
Примечания
Существует также github.com/emran/ssp репозиторий , содержащий расширенные ssp.class.php
вспомогательные JOIN
и GROUP BY
.
Ссылки
См. Таблицы данных jQuery: использование WHERE, ОБЪЕДИНЕНИЕ и ГРУППИРОВАНИЕ с помощью ssp.class.php для получения дополнительной информации.
Комментарии:
1. Я получаю ошибку с EOT в моем cake ошибка синтаксиса php-приложения, неожиданный конец файла в