Я использую серверную часть DataTables для отображения моих данных.
(пример)
(руководство).
Я смог расширить этот инструмент с помощью группы:
echo json_encode(
SSP::simple( $_GET, $sql_details, $table, $primaryKey, $columns, $groupby )
);
и в классе ssp.class.php
$data = self::sql_exec( $db, $bindings,
"SELECT SQL_CALC_FOUND_ROWS `".implode("`, `", self::pluck($columns, 'db'))."`
FROM `$table`
$where
$groupby
$order
$limit");
но когда я хочу SUM столбца, я получаю сообщение об ошибке, что столбец SUM (GrossPrice) не был найден.
Вот как обрабатываются столбцы:
$columns = array(
array( 'db' => 'ProductDescription', 'dt' => 0 ),
array( 'db' => 'SUM(GrossPrice)', 'dt' => 1 ),
array( 'db' => 'SUM(Number)', 'dt' => 2 )
);
Я нашел обходное решение:
Я создал представление в mysql с помощью запроса sum () и просто использовал таблицы данных для отображения этого представления.
Надеюсь, что это служит другим людям.
Старый вопрос, но я отвечаю за тех, у кого такая же проблема.
Ты можешь использовать этот класс с joinQuery. Мы используем joinQuery, потому что если мы не будем использовать, класс SSP будет использовать собственные запросы.
$columns = array(
array('db' => 'x.ProductDescription', 'dt' => 0, 'field' => 'ProductDescription'),
array('db' => 'SUM(x.GrossPrice) as GrossPrice', 'dt' => 1, 'field' => 'GrossPrice'),
array('db' => 'SUM(x.Number) as Number', 'dt' => 2, 'field' => 'Number')
);
Пример joinQuery:
$joinQuery = "FROM {$table} AS x";
И звоните так:
echo json_encode(
SSP::simple( $_GET, $sql_details, $table, $primaryKey, $columns, $joinQuery)
);
Этот класс настроен для запроса JOIN, но вы можете использовать его следующим образом. Благодаря Emran для этого класса.