2015-11-22 3 views
0

Im пытается получить обработку на стороне сервера, работая со связанными столбцами.столбец формата данных из нескольких источников (обработка на стороне сервера)

Я наткнулся на это этот пост: Datatables - Server-side processing - DB column merging

Но когда я использую этот формат я получаю SQL ошибки. Но я также хочу вставить слово ... пространство между полями ... это возможно?

Редактировать:

Пример:

Таблица INIT:

var customer_Table = $('#customer_Table').DataTable({ 
    "processing": true, 
    "serverSide": true, 
    "ajax": "php/server_processing.php", 
    stateSave: true, 
    "lengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]], 
    'order': 2, 'asc' ]], 
    "columns": [{"title":"id","visible":false,"type":"html-string"},{"title":"name","visible":true,"type":"html-string"},[{"title":"address","visible":true,"type":"html-string"} 
}); 

схема Колонка:

$columns = array(
    array('db' => 'id', 'dt' => "id"), 
    array('db' => 'name', 'dt' => "Name"), 
    array('db' => "`street` . ' ' . `city` . '<br>' . `postal` . ' ' . `country`" 'dt' => "address" 
    ) 
); 

Ошибка:

{"error":"An SQL error occurred: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '`id`,`name`, `JCP`, ``street` . ' ' . `city` . '<br>' . `postal` . ' ' . `country``...' at line 1"} 
+1

пожалуйста, должность: код, дБ схемы, дБ выборки, ошибки. без этой основной информации ваши вопросы не подлежат обсуждению. –

+0

лучше? его не мой прямой код, так как мой код имеет много столбцов, которые просто сделают сообщение сложнее понять. – theshadow124

+0

лучше, но я не читаю всю документацию datatables, чтобы решить, что ей нужно –

ответ

2

Судя по сообщению об ошибке, механизм обработки ожидает действительную ссылку столбца для 'db'. Каждый «db» должен ссылаться на допустимую ссылку на столбец в предложении WHERE, и каждый «dt» содержит метку, которая будет отображаться для этого столбца.

Ваша ссылка, по вашему сниппета:

"`street` . ' ' . `city` . '<br>' . `postal` . ' ' . `country`" 

Что не значит для большинства СУБД я знаком с. Попробуйте что-то вроде этого:

+0

есть ли способ остановить SSP.class от добавления '' вокруг инструкции concat? или мне нужно добавить некоторую логику, чтобы предотвратить это? – theshadow124

+0

после добавления кода, чтобы убедиться, что sql корректно возвращает таблицы данных: DataTables warning: table id = customer_Table - запрошенный неизвестный параметр '0' для строки 0. .... по какой-то причине он попытался загрузить записи 2000 сразу же, как и – theshadow124

+0

при просмотре данных, которые он возвращает правильно, но решил вернуть все записи? – theshadow124

0
$columns = array(
    array('db' => 'id', 'dt' => "id"), 
    array('db' => 'name', 'dt' => "Name"), 
    array('db' => "CONCAT(`street`, ' ', `city`, '<br>', `postal`, ' ', `country`)", 
      'as' => "address", 
      'dt' => "address") 
); 
Смежные вопросы