Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Mizter Egoist 31.12.2017 03:18
Хочу понять можно ли реализовать динамические запросы к таблице записанной в файл.^_select[keys][ $.email[mail@mail.com] $.server[example.ru] ] /*или такой*/ ^_select[keys][ $.email[mail@mail.com] ] /*или такой*/ ^_select[session][ $.id[$id] ] /*в общем любые поля предусмотренные шаблоном*/Файл с таблицей записан в формате json и имеет следующую структуру:
{ "name":"keys", "count":"2", "created":"1514657168", "updated":"1514659786", "data":[ {"id":"ce95c0ccfed2d119","email":"mail@mail.com","server":"example.ru","active":"","license":"c4205307-ef4b-4ba9-a4b6-c9b1ec575358","api":"0737618b-7e3e-4db4-a95a-5053663cc42f","secret":"576a1c21510241bc","public":"2a86503501a33577","access":"","reload":"","created":"1514657168","expires":"1546193168"}, {"id":"ebed23804532d852","email":"mail@mail.com","server":"example.com","active":"","license":"854a3f3a-22d3-4b9e-8f8b-da6c11f8ebe7","api":"fbc6c4e5-ef77-4d17-adb9-8deade1ade00","secret":"9286bc5916af8835","public":"4e42b91262df310d","access":"","reload":"","created":"1514659786","expires":"1546195786"} ] }Смог добиться результата, который только сообщает есть ли совпадения по запросу, но не знаю как возвращать строки совпадений, чтобы результатом была таблица с совпадениями, чтобы потом написать @_delete и @_update
@_select[table;data] /*проверяем существует ли файл в директории*/ ^if($self.base.[^math:md5[$table]]){ $hash[^_open[$table]] /*открываем файл и делаем из него хэш*/ $bone[^pattern[$table;$data]] /*создаем тело таблицы на основе шаблона*/ $body[^table::create{^bone.foreach[key;value]{$key}[ ]}] /*создаем таблицу*/ ^hash.data.foreach[;row]{ ^body.append[$row] /*наполняем таблицу данными из файла*/ } $select[^bone.foreach[key;value]{ ^if(def $value && $key ne 'id'){ $.[$key][^if(^body.locate[$key;$value]){true}{false}] } }] /*проверяем истину каждого ключа*/ $keys[^select.keys[]] /*собираем ключи*/ $response[^process{^^if(^keys.menu{'true' eq '$select.[$keys.key]'}[ && ])^{true^}^{false^}}] /*проверяем истину всего запроса*/ ^if(^response.bool[]){ ^json:string[есть совпадения] }{ ^json:string[нет совпадений] } }