DataTable with render_sql and filtering

edited April 2017 in Technical questions

Здравствуйте. У меня есть основная таблица MySQL, которая содержит как простые поля с данными, так и поля, содержащие внешние ключи на другие таблицы, которые соединяются с ней путём LEFT JOIN. Итоговый запрос я подключаю DataTable через render_sql.

При выводе данных в DataTable мне необходимо чтобы работала фильтрация по столбцам таблицы. Для этого я воспользовался serverFilter. Данные, полученные из основной таблицы MySQL прекрасно фильтруются, а данные полученные через LEFT JOIN фильтруются не по значению, а по номеру ключа, который содержится в главной таблице. То есть если в таком столбце выводятся, допустим, виды транспорта: Автомобиль, Самолёт, Корабль... то фильтр найдёт эти строки только если я напишу там 1,2 или 3.

Таким образом получается, что фильтр осуществляет поиск только по основной таблице. И если в искомом поле содержится не значение, а ключ, то элемент будет найден, только если ввести номер ключа. Если же есть необходимость сделать фильтр в виде списка serverSelectFilter, то список выводит именно значения Автомобиль, Самолёт, Корабль, при клике на которые фильтр естественно ничего не находит

Есть ли пути решения этой проблемы?

__________Google Translate_____________________________________
Hello. I have a MySQL main table that contains simple data fields and fields that contain foreign keys to other tables that are linked to it by LEFT JOIN. The final request, I connect the DataTable via render_sql.

When displaying data in a DataTable, I need to make filters by the columns of the table. For this, I used serverFilter. The data obtained from the main MySQL table is perfectly filtered, and the data obtained through LEFT JOIN is filtered not by value, but by the key number that is contained in the main table. If such a column displays, for example, modes of transport: Vehicle, Airplane, Ship ... then the filter will find these lines only if I write there 1,2 or 3.

Thus, it turns out that the filter searches only the main table. And if the key field contains not a value, but a key, then the element will be found only if you enter the key number. If there is a need to make the filter as a list of serverSelectFilter, then the list displays exactly the values ​​of Car, Airplane, Ship, when you click on which the filter naturally does not find anything

Are there ways to solve this problem?

Comments

  • Также есть проблема с фильтрацией чисел. Если в какой-то колонке есть числа от 0 до 100, то если в фильтре ввести число 0, то также выведутся все числа, содержащие эту цифру, то есть 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100. Возможно ли сделать так, чтобы при поиске числа 0 были найдены только строки, содержащие 0?


    Also there is a problem with filtering numbers. If there are numbers from 0 to 100 in some column, then if you enter 0 in the filter, all numbers containing this digit, that is, 0, 10, 20, 30, 40, 50, 60, 70, 80 , 90, 100. Is it possible to make sure that when searching for the number 0 only lines containing 0 are found?

Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

In this Discussion