как использовать предложение group by в ssp.class.php из таблиц данных

#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-приложения, неожиданный конец файла в