| Новости | 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[нет совпадений]
}
}