Создание фильтра с помощью вычисления
#1
Отправлено 14 Ноябрь 2014 - 10:59
Подскажите, пожалуйста, как создать новый фильт с помощью вычисления? Какой запрос к БД или какие определенные функции необходимо использовать?
P.S. Поиском пользовался, ответ не нашел. Если все же ответ был дан ранее, укажите в какой теме.
С уважением, Евгений.
#2
Отправлено 17 Ноябрь 2014 - 12:22
Специальных функций для этого нет, делаете обычный запрос на добавление записи в таблицу filters. Структуру таблицы можно посмотреть через edit_sql.php, к примеру. Если будут вопросы по структуре - спрашивайте.
#3
Отправлено 18 Ноябрь 2014 - 07:44
CbCoder (17 Ноябрь 2014 - 12:22) писал:
Специальных функций для этого нет, делаете обычный запрос на добавление записи в таблицу filters. Структуру таблицы можно посмотреть через edit_sql.php, к примеру. Если будут вопросы по структуре - спрашивайте.
При добавлении записи в одной таблице, необходимо создавать фильтр по полю связи в другой таблице. А в этом фильтре есть вложенные фильтры по другим полям.
При удалении той записи, необходимо удалять и фильтр (со всеми вложенными).
Может, есть вариант сделать проще, чем писать запрос к БД? Хотя, Вы говорите, специальных функций таких нет.
#4
Отправлено 18 Ноябрь 2014 - 09:34
#5
Отправлено 18 Ноябрь 2014 - 10:09
#6
Отправлено 19 Ноябрь 2014 - 12:46
fajesu (18 Ноябрь 2014 - 10:09) писал:
Это набор для мастера условий, в вашем случае его можно оставить пустым. При входе в фильтр из программы он просто будет отображаться в режиме эксперта.
Сразу добавлю: поля expert и value также будут равны в вашем случае, они отличаются только в случае вложенного фильтра.
#7
Отправлено 19 Ноябрь 2014 - 14:37
Мне в поле "expert" необходимо писать контрукцию типа "{parent} and ..." или то же, что в поле "value"?
Сообщение отредактировал fajesu: 19 Ноябрь 2014 - 14:47
#8
Отправлено 20 Ноябрь 2014 - 10:17
Хотя такая разница нужна только для автоматического обновления value при редактировании условия родительского через программу. Если это не нужно - можно и одинаковым все задать.
#9
Отправлено 25 Ноябрь 2014 - 08:11
Вопрос: я правильно понимаю, что условие "Сохранение в таблице" для выполнения вычисления - это "Добавление новой записи"?
Вопрос 2: как в вычислении узнать ID новой создаваемой записи?
#10
Отправлено 25 Ноябрь 2014 - 10:21
Цитата
Не совсем, событие "Сохранение в таблице" возникает при каждом нажатии на кнопку Сохранить, если речь не про подтаблицы. В подтаблицах новая запись сохраняется сразу, поэтому фактически событие срабатывает при добавлении новой записи.
Цитата
Смотря как вы добавляете эту новую запись.
#11
Отправлено 26 Ноябрь 2014 - 07:17
CbCoder (25 Ноябрь 2014 - 10:21) писал:
CbCoder (25 Ноябрь 2014 - 10:21) писал:
Вот, в вычислении необходимо узнать ID только что созданной таким образом записи.
CbCoder (25 Ноябрь 2014 - 10:21) писал:
#12
Отправлено 26 Ноябрь 2014 - 09:51
Цитата
Если запись текущая, то узнается также как и любое другое поле - через $line['имя поля'], т.е. в данном случае $line['ID'].
Цитата
Добавить проверку на новую запись, флаг лежит в переменной $event['is_new_line'].
#13
Отправлено 26 Ноябрь 2014 - 10:13
#14
Отправлено 27 Ноябрь 2014 - 13:56
Затем решил посмотреть в конфигурации, по адресу "edit_filter.php" фильтр есть, а вот в режиме просмотра таблицы его нет...
С чем это связано? Может куда-то еще данные должны заноситься?
#15
Отправлено 27 Ноябрь 2014 - 15:24
#16
Отправлено 13 Май 2015 - 15:01
Если это вычисление, можно или вставить туда обращение к базе?.. Когда (и сколько раз, соответственно) оно срабатывает?..
Мне бы перед фильтрацией один разочек к базе бы обратиться и одно значение получить. Которое сравнивать с полем.
UPDATE:
Ладно, вопросы снимаются.
Это вычисление, оно отрабатывает один раз и это ВЕЛИКОЛЕПНО!
Потому что полученное значение можно вставить в условие фильтра.
UPDATE_2:
Рано радовался...
Простите, уважаемый CbCoder, как вставить полученное значение в фильтр?..
Сообщение отредактировал lodion: 13 Май 2015 - 15:36
#17
Отправлено 15 Май 2015 - 10:19
Цитата
{calculate}
#18
Отправлено 15 Май 2015 - 12:34
#19
Отправлено 15 Май 2015 - 12:53
'{calculate}'Т.е. в одинарных кавычках. Иначе не срабатывает замена.
Всем удачи!
#20
Отправлено 11 Март 2016 - 14:43
Есть таблица "Заявок", с полями "стоимость" и "район"
Есть таблица "недвижимость", с точно такими же полями.
Как таблице "Заявка"сделать доп. действие на выборку по данным полям из таблицы Недвижимость?
Сделал как стандартной конфигурации, но вычисление добавляет запись, а не сортирует.
echo "<script>location.href='".$config["site_root"]."/view_line.php?table=270&line=f4190=f4540'</script>";
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных